JQuery - Как выбрать: нечетные непосредственные потомки элемента - PullRequest
0 голосов
/ 12 февраля 2011

У меня есть следующая таблица:

<table class='table'>
<tr></tr>
<tr><tr>
<tr>
<table><tr></tr></table
<tr></tr>
</table>

, и я хочу выбрать только непосредственный нечетный tr после .table.

То, что я пробовал:

$('.table > tr:odd').addClass('odd');

Но это не делает работу.

Кто-нибудь знает?Спасибо.

Ответы [ 2 ]

1 голос
/ 12 февраля 2011

Другой вариант будет использовать метод filter() (документы) .

$('.table > tbody > tr').filter(function(i){
    return !(i % 2);
}).addClass('odd');

Это позволит вам использовать действительный CSS-селектор при первоначальном выборе, что даст хороший прирост производительности в браузерах, поддерживающих querySelectorAll.

Пример: http://jsfiddle.net/kbnH2/

1 голос
/ 12 февраля 2011

и я хочу выбрать только ближайший tr после .table.

Вы используете имя класса, отличное от указанного, попробуйте:

 $('.table > tr:odd').addClass('odd');

Также убедитесь, что вы завернули свой код в готовый обработчик:

$(function(){
     $('.table > tr:odd').addClass('odd');
});

Вы также должны попробовать добавить tbody:

$('.table > tbody > tr:odd').addClass('odd');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...