Как мы знаем — разбор селектора и поиск начнётся со всех .child элементов на странице (при условии, что querySelectorAll() недоступно). Такая операция достаточно затратна и мы можем трансформировать селектор так: $('.child', $('.root')[0]); // использование контекста не облегчит поиск
$('.root').find('.child'); // а зачем нам перебор всех элементов внутри .root?
$('.root').children('.child'); // самый правильный вариант
Почему перебор всех элементов .root на странице — менее затратная операция, чем перебор всех элементов .child на странице?
Дело в том, что этот баг давно не давал мне покоя в различных проектах. И если бы мне кто то показал решение раньше, я был бы очень признателен. Поэтому, думаю, данный пост поможет тем, кто с сталкивался с проблемой ранее и, как и я, не находил ответа.
Почему перебор всех элементов .root на странице — менее затратная операция, чем перебор всех элементов .child на странице?