我有一个扩展和折叠行的表,列可排序。 以下是我的代码,是否有任何方法可以改善其性能。 并且读取将完整的行组添加到dom中可以提高性能,但是如果我执行了$ .each()循环则会抛出错误。 teble demo
var alt = true;
var altSub = true;
$.each(myData, function(index, row) {
var noRow = $(row).length;
var firstRow = $(row[0]);
for (var i=0; i < noRow; i++) {
if(firstRow.attr('id') == $(row[i]).attr('id')) {
if(alt == true) {
firstRow.removeClass("odd").addClass("even");
alt = !alt;
altSub = true;
} else if( alt == false) {
firstRow.removeClass("even").addClass("odd");
alt = !alt;
altSub = true;
}
} else {
if(altSub == true) {
$(row[i]).removeClass("alt_row_sub").addClass("alt_row_sub2");
altSub = !altSub;
} else if( altSub == false) {
$(row[i]).removeClass("alt_row_sub2").addClass("alt_row_sub");
altSub = !altSub;
}
}
}
$table.children('tbody').append(row);
});
答案 0 :(得分:15)
然后您可以像这样使用它们:
$('.stripyTable tr:even').addClass('even');
$('.stripyTable tr:odd').addClass('odd');
$('.stripyTable .submenu tr:even').addClass('alt_row_sub');
$('.stripyTable .submenu tr:odd').addClass('alt_row_sub2');
要考虑的另一件事是你是否可以使用CSS获得子部分的不同样式,然后在你的JS中你只需要担心应用奇数/偶数类。 CSS可能看起来像:
.odd { background-color: blue; }
.even { background-color: white; }
.sub .odd { background-color: green; }
.sub .even { background-color: yellow; }
答案 1 :(得分:2)
Tutorials:Zebra Striping Made Easy是关于如何进行斑马条纹的一个很棒的教程。
答案 2 :(得分:0)
你在每个循环中,执行此操作:
$.each(myData, function(index, row) {
if(index % 2 == 0)
{
row.addClass("AltRow");
}
)};