Вы можете использовать это для доступа к n-му элементу:
$("tr:nth-child(3n)") //will match with 3rd, 6th, ...
Вы можете изменить 3n
или просто добавить и вычесть к нему:
$("tr:nth-child(3n+1)") //will match with 1st, 4th, 7th, ...
$("tr:nth-child(3n+2)") //will match with 2nd, 5th, 8th, ...
:nth
также может использоваться в фильтре, например:
$(SELECTOR).filter(":nth-child(3n)")
Надеюсь, это то, что вы ищете.
UPDATE:
Перечитав твой вопрос, я понял, что понял неправильно.
В своем коде я поместил код в отдельную функцию:
function zebra_table($) {
$("tr").removeClass("odd");
$("tr:odd").addClass("odd");
}
Затем, после того как я изменю строку таблицы, например удалю одну из нее, или добавлю новую строку, я просто вызову указанную выше функцию:
jQuery(function($){
//after DOM loaded, apply zebra
zebra_table($);
//...
//after modify table
zebra_table($);
});
Ключ в том, чтобы снова сделать таблицу «простой», а затем повторно применить правила зебры в текущей структуре таблицы.