@vafarulez
Верстаю сайты

Как быстро работает find в jquery?

Просто хотел бы узнать как правилнее писать. Например есть html:
<div class="item">
 <div class="image">Hello World!</div>
</div>

Как будет более производительнее ?
$('.item').click(function(){
  $(this).find('.image').text('ok');
})

Или:
$('.item').click(function(){
  $('.image').text('ok');
})
  • Вопрос задан
  • 467 просмотров
Решения вопроса 1
Petroveg
@Petroveg
Миром правят маленькие с#@&ки
Гарантированно производительнее будет так:

$(document).on('click', '.item', (function (e) {
	$('.image', this).text('ok');
});

Вопрос задаёте хороший, но ограничиваете себя только траверсом элементов, в то время как предпочтительней использовать фазу всплытия события без какого-либо предварительного поиска. Ах, и да — при динамической генерации контента такой вариант безотказен.

Можно обратить внимание на синтаксис поиска — различные варианты вызова jQuery описаны в документации.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@IceJOKER
Web/Android developer
В документации об этом написано, читайте.
Быстрота find() заключается в том, что поиск происходит отталкиваясь от текущего элемента, а при просто $('.image') - поиск проходит по всем элементам.
Но особой разницы вряд ли почувствуете на небольших(средних) страницах

https://learn.jquery.com/performance/optimize-sele...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы