Цей тест jsPerf говорить про те, що пошук () швидше. Я створив більш ретельний тест , і він все ще виглядає так, ніби знайти () перевершує дітей ().
Оновлення: Відповідно до коментаря tvanfosson, я створив ще один тестовий випадок з 16 рівнями вкладення. find () лише повільніше, коли знаходять усі можливі діви, але find () все ж перевершує дітей () при виборі першого рівня divs.
діти () починають перевершувати пошук (), коли існує понад 100 рівнів гніздування та близько 4000+ дивок для пошуку (), щоб перейти. Це рудиментарний тестовий випадок, але я все ж думаю, що пошук () у більшості випадків швидше, ніж діти ().
Я переглянув код jQuery в Інструментах для розробників Chrome і помітив, що діти () внутрішньо здійснюють дзвінки до sibling (), filter () і проходять ще кілька регексів, ніж find ().
find () та діти () задовольняють різні потреби, але у випадках, коли find () та діти () дають однаковий результат, я б рекомендував використовувати find ().
.find()
і.children()
не однакові. Останній рухається лише на один рівень вниз по дереву DOM, як дочірній селектор.