Они не эквивалентны, как я объясню ниже, но если скорректировать их в соответствии, .children()
для скорости, .find()
для краткости (дополнительная работа внутри Sizzle анализируя это для начала), вы решаете, что важнее.
Первый имеет разные результаты, но если вы знаете, что они дети, вы можете сделать это:
$("whatever").find("> .foo > .bar")
//equal to...
$("whatever").children(".foo").children(".bar")
Этот будет эквивалентен вашей второй функции. В настоящее время, первое, что у вас есть, это найдет:
<whatever>
<div class="foo">
<span>
<b class="bar">Found me!</b>
</span>
</div>
</whatever>
Второе не будет, требуется, чтобы .foo
был прямым потомком whatever
и .bar
был прямым потомком этого, .find(".foo .bar")
позволяет они должны быть любого уровня, вплоть до .bar
у потомка .foo
.