Как дополнительно отфильтровать массив элементов jquery, не выполняя повторный поиск jquery?

StackOverflow https://stackoverflow.com/questions/1616293

  •  06-07-2019
  •  | 
  •  

Вопрос

Учитывая следующий код, как мне использовать переменные div, созданные первым селектором jQuery, без повторного запуска в строке, где я добавляю класс?

Итак, учитывая это:

var divs = $("div.searchhit");

// здесь больше кода с использованием divs.length     divs.removeClass (& Quot; выбран & Quot;);     $ (& Quot; div.searchhit: экв (0) & Quot;) addClass (& Quot; выбран & Quot;); .

Как мне заставить последнюю строку выглядеть так:

divs(":eq(0)").addClass("selected");
Это было полезно?

Решение

Просто используйте eq () метод :

divs.eq(0).addClass('selected');

Другие советы

Похоже, один из возможных ответов:

divs.filter(":eq(0)").addClass("selected");

Пожалуйста, прочитайте документацию по jQuery. Это хорошо покрыто.

Это было немного лаконично с моей стороны. Вот небольшое объяснение:

jQuery (запрос) - это основной фильтр, который выполняет поиск в корне DOM. Последующие запросы к результирующему объекту запускаются с этого набора. Если операции расширения не выполняются (скажем, при просмотре дочерних элементов в ранее подобранном узле), тогда результирующий запрос может содержать не более такого количества элементов, как предыдущий запрос.

Если вы хотите, например, выбрать дочерние элементы (вместо фильтрации по ним), используйте:

$('tr').children('td')
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top