Может быть более изящный способ сделать это, но вот один из способов:
$("table.altRow tr").filter(function() {
return $(this).children().length == 3;
}).filter(':even').addClass('alt');
$("tr.alt td[rowspan]").each(function() {
$(this).parent().nextAll().slice(0, this.rowSpan - 1).addClass('alt');
});
При этом вместо цвета используется класс CSS, например:
.alt { background-color: #DEDFDE; }
Вы можете попробовать здесь , вы можете поменять :even
и :odd
в первом блоке кода, чтобы выполнить любой шаблон, который вы хотите (в примере :odd
не иллюстрирует это хорошо, так какэто строки без rowspan
ячеек).
Для этого нужно найти строки с всеми ячейками, а не частичными строками, получаются нечетные или четныеиз тех и применяет класс.Затем второй проход просматривает эти строки, и если у них есть какие-либо rowspan=""
ячейки, он получает .rowSpan
(свойство DOM), минус единицу для текущей строки, и применяет класс, который на много строк нижечерез .nextAll()
и .slice()
.