JQuery - Как выбрать: нечетные непосредственные потомки элемента

У меня есть таблица как это:

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

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

То, что я пытался это:

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

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

Кто-нибудь знает? Благодарю.

2 ответа

Решение

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

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

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

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

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

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

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

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

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

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

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

Другие вопросы по тегам