Как дополнительно отфильтровать массив элементов jquery, не выполняя повторный поиск jquery? - PullRequest
1 голос
/ 24 октября 2009

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

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

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

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

.

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

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

Ответы [ 4 ]

4 голосов
/ 24 октября 2009

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

divs.eq(0).addClass('selected');
2 голосов
/ 24 октября 2009

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

divs.filter(":eq(0)").addClass("selected");
1 голос
/ 24 октября 2009

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

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

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

0 голосов
/ 06 сентября 2012

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

$('tr').children('td')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...