2014-09-25 2 views
0

Я хочу выбрать все элементы определенного класса, а затем манипулировать ими по мере запуска страницы. Я не хочу постоянно запрашивать один и тот же набор элементов, но мне нужно получить доступ к различным элементам. Вот что я имею в виду:jQuery повторное использование селектора и манипулирование элементами

var items = $(".these"); // The items I need to use 
items.first().hide() // Hide the first item 

$(".these:nth-child(3)"); // How could I get the third element of items and perform jQuery functions on them without querying again? 

items[3].hide() // Doesn't work because the third element isn't accessed with jQuery. 

Мне нужно сделать это с помощью индекса. Например, прямо сейчас я это делаю:

$(".these:nth-child(" + index + ")"); 

ответ

1

Вам нужно только использовать й функции эк() http://api.jquery.com/eq/

+0

Пригвожденный! Спасибо за такое простое решение! Интересное примечание - при использовании nth-child первый элемент - это элемент 1, но при использовании eq() первый элемент - это элемент 0. –

+0

Да, jQuery рекомендует функции для селекторов. ;-) – Loenix

+1

это больше похоже на: nth-of-type. Он работает только в том случае, если дети родителя являются одним и тем же селектором. –

0

Нечто подобное?

var items = $('.these'); 
items.find(':nth-child(3)').hide(); 
+0

Нет, это найдет третий ребенок среди дочерних элементов элементов, а не элемент, который является третьим ребенком его родителя. – Adam

0

Я думаю, что вы ищете в .filter() функции в JQuery. См. docs , например.

items.filter(':nth-child(3)').hide(); 

Или, как уже было предложено, eq, если вы хотите идти только по определенному индексу. Однако фильтр может принимать любой селектор jQuery. Например.

items.filter(':visible:first') 

, чтобы найти первый, все еще видимый после более ранних манипуляций.

+0

Интересно. Я использовал решение eq(), и он отлично работал. Знаете ли вы разницу между фильтром и экватором? Является ли фильтр более широким и позволяет вам различать способы фильтрации, тогда как eq строго основан на индексах? –

+0

В значительной степени. Добавили еще один пример для фильтра – Adam

Смежные вопросы