Я немного смущен поведением при использовании 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>
Почему?