Какое более правильное решение написания each() для улучшения производительности?

На сайте два блока- ".block1" и ".block2", в которых лежат елементы с клаcсом ".item".
Необходимо сделать выборку с помощью each() одного из блоков.
Я делаю так:
$('.block2 .item').each(function(){
   console.log(this);
  });

Как правильно записать выборку?
  • Вопрос задан
  • 2461 просмотр
Решения вопроса 1
romanzhak
@romanzhak
Mathematician
Не занимайтесь ерундой, тест для Chrome. В FF последний вариант выигрывает на 0.5%

// 4,511 ops per sec
$('.block .item').each(function() {
  console.log(this);
});
// 4,613 ops per sec
$('.item', '.block').each(function() {
  console.log(this);
});
// 4,519  ops per sec
$('.block').children('.item').each(function() {
  console.log(this);
});
// 4,569 ops per sec
$('.block > div[class="item"]').each(function() {
  console.log(this);
});
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Вот так правильно. Используем контекст выборки, т.е. ищем блок .item в блоке .block2
$('.item', '.block2').each(function(){
   console.log(this);
  });
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы