Я немного смущен поведением при использовании children() и find() с :first.
Рассмотрим следующую разметку:
<div class="parent">
<div>1</div>
<div class="child">2</div>
<div class="child">3</div>
</div>
<div class="parent">
<div>1</div>
<div class="child">2</div>
<div class="child">3</div>
</div>
Из того, что я понимаю, следующее должно возвращать один и тот же набор элементов, так как нет внуков (это единственная разница между find() и children() в документация).
Однако, если я добавлю класс в первый .child, результаты будут разными:
$('.parent').find('.child:first').addClass('active');
Результаты следующей разметки:
<div class="parent">
<div>1</div>
<div class="child active">2</div>
<div class="child">3</div>
</div>
<div class="parent">
<div>1</div>
<div class="child active">2</div>
<div class="child">3</div>
</div>
Выполняя то же самое с помощью метода children(), я получаю:
<div class="parent">
<div>1</div>
<div class="child active">2</div>
<div class="child">3</div>
</div>
<div class="parent">
<div>1</div>
<div class="child">2</div>
<div class="child">3</div>
</div>
Почему?