Этот тест jsPerf предполагает, что find () работает быстрее. Я создал более тщательный тест , и он все равно выглядит так, как будто find () превосходит children ().
Обновление: согласно комментарию tvanfosson, я создал еще один тестовый пример с 16 уровнями вложенности. find () работает медленнее только при поиске всех возможных div, но find () по-прежнему превосходит children () при выборе первого уровня div.
children () начинает опережать find (), когда существует более 100 уровней вложенности и около 4000+ делений для поиска (). Это элементарный тестовый пример, но я все еще думаю, что find () быстрее, чем children () в большинстве случаев.
Я прошелся по коду jQuery в Chrome Developer Tools и заметил, что children () внутренне выполняет вызовы sibling (), filter () и выполняет еще несколько регулярных выражений, чем find ().
find () и children () удовлетворяют разные потребности, но в тех случаях, когда find () и children () выдают одинаковый результат, я бы рекомендовал использовать find ().
.find()
и.children()
не одинаковы. Последний перемещается только на один уровень вниз по дереву DOM, как дочерний селектор.