我成功使用jquery奇数/偶数选择器来创建“老虎条纹” 一张桌子。然后我添加了添加或删除行的功能。但是我没有 能够在添加/删除行时使条带化正常工作。它适用于添加/追加,但不适用于添加/前置或删除。以下是代码摘要...
$(document).ready(function(){
// click on Add Row button
$("#addButton").click(function(){
// add a row to table
addTableRow('#myTable');
// then re-apply tiger striping
stripeRows();
});
});
// remove specified row
function removeRow(row) {
$(row).parent("tr").remove();
stripeRows();
}
function StripeRows()
{
$("#myTable").each(function(){
$(this).find("tr:even").addClass("evenrow");
$(this).find("tr:odd").addClass("oddrow");
});
}
答案 0 :(得分:5)
这可能不起作用,可能是因为你没有删除旧班。
我有两条建议:
:even
和:odd
。这些通常不会表现出您的期望。而是分别使用:nth-child(even)
和:nth-child(odd)
;和所以你应该这样做:
function StripeRows() {
$("#mytable > tbody > tr").removeClass("oddrow")
.filter(":nth-child(odd)").addClass("oddrow");
}
此函数从表中的所有行中删除“oddrow”类,然后将“oddrow”类添加到表中的奇数行。
如果你仍然想要奇数/偶数(imho只是增加了额外的不必要的代码),那就没有太大的改变了:
function StripeRows() {
$("#mytable > tbody > tr").removeClass("oddrow evenrow")
.filter(":nth-child(odd)").addClass("oddrow")
.end().filter(":nth-child(even)").addClass("evenrow");
}
答案 1 :(得分:0)
您需要先清除以前的条带化:
function StripeRows()
{
$("#myTable").each(function(){
$(this).find("tr").removeClass('evenrow oddrow');
$(this).find("tr:even").addClass("evenrow");
$(this).find("tr:odd").addClass("oddrow");
});
}
否则,您最终会得到包含evenrow
和oddrow
类的行。
答案 2 :(得分:0)
也许你应该先试试这个?
$(this).find("tr").removeClass();