2014-05-14 5 views
7

Как я могу получить первый (следующий) элемент в списке, который соответствует селектору?JQuery - найти первый селектор совпадений матчей

Пример:

<table> 
    <tr class="test"><td>not this one</td></tr> 
    <tr><td><a title="test">click</a></td></tr> 
    <tr><td>not this one</td></tr> 
    <tr class="test"><td>this one</td></tr> 
    <tr class="test"><td>ignore this as well</td></tr> 
</table> 

$("a").on('click', function(eve){ 
    $(this).parents("tr").???(".test").toggle(); 
}); 

редактировать

мне нужно следующую строку. братья и сестры получают и другие (например, первый ряд)

+1

, что вы пытаетесь сделать ?? –

+0

У меня есть динамические строки, которые включаются и выключаются в строке prev. Я не могу использовать 'next()', так как я не могу определить, какая из строк у меня будет - и сколько. – yossi

ответ

14

Используйте .nextAll(), чтобы получить следующих братьев и сестер и :first, чтобы получить первый согласованный элемент.

Попробуйте это:

$("a").on('click', function(eve){ 
    $(this).parents("tr").nextAll(".test:first").toggle(); 
}); 

DEMO

0

Вы можете попробовать использовать JQuery эк();

С учетом объекта jQuery, представляющего набор элементов DOM, метод .eq() создает новый объект jQuery из одного элемента внутри этого набора. Поставляемый указатель определяет положение этого элемента в наборе. Documentation on jQuery

<table> 
    <tr class="test"><td>not this one</td></tr> 
    <tr><td><a title="test">click</a></td></tr> 
    <tr><td>not this one</td></tr> 
    <tr class="test"><td>this one</td></tr> 
    <tr class="test"><td>ignore this as well</td></tr> 
</table> 

Код будет выбрать 2º родственный с классом «тест» из < тр> это один из родителей к щелкнули < а> (красный это обратно, и вы получили ваш код):

$("a").on('click', function(){ 
    $(this).parents("tr").siblings(".test").eq(1).toggle(); 
}); 

Check the Pen!

+1

Не отвечает ли 100% на вопрос OP как 1) ОП запросил следующие sbilings таким образом 'nextAll' вместо' siblings' (также выберите те, которые были раньше), и 2) он попросил следующий (первый), таким образом, 'eq (0) 'вместо' eq (1) '. Хотя вы упомянули, что он выбирает второй, лучше всего сразу ответить на заданный вопрос :) –

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

  • Нет связанных вопросов^_^