Разница заключается в том, что $($(selector)[0])
представляет собой объект JQuery, содержащий только первый матч, в то время как $(selector)
является объектом JQuery, который может возможно содержит больше, чем просто первый матч.
Иными словами, $(selector)[0]
будет извлекать первый элемент DOM в объекте jQuery. Обертка элемента DOM с помощью $()
вернет объект jQuery. С другой стороны, $(selector)
будет получать все совпадения (которые может быть больше, чем только первое совпадение).
Лучший способ переписать $($(selector)[0])
будет $(selector).eq(0)
.
Например:
$($('.example1')[0]).css('background-color', '#f00');
$('.example2').css('background-color', '#0f0');
$('.example3').eq(0).css('background-color', '#00f');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p class="example1">$($('.example1')[0])</p>
<p class="example1">$($('.example1')[0])</p>
<p class="example1">$($('.example1')[0])</p>
<hr />
<p class="example2">$('.example2')</p>
<p class="example2">$('.example2')</p>
<p class="example2">$('.example2')</p>
<hr />
<p class="example3">$('.example3').eq(0)</p>
<p class="example3">$('.example3').eq(0)</p>
<p class="example3">$('.example3').eq(0)</p>
Спасибо за ваш ответ, теперь я понял. – chaehorim
@chaehorim Рад, что это помогло :) –