我怎样才能轮换;可见的;使用jQuery的html表中的行

我怎样才能轮换;可见的;使用jQuery的html表中的行,jquery,html-table,Jquery,Html Table,我有一段代码在jQuery中为html交替行: function AlternateRowColors() { $("table.altRow1 tr").filter(function() { return true; }).filter(':even').addClass('alt'​​​​​​); $("tr.alt td[rowspan]").each(function() { $(this).parent().nextAll().slice

我有一段代码在jQuery中为html交替行:

function AlternateRowColors() {

    $("table.altRow1 tr").filter(function() { 
    return true;
    }).filter(':even').addClass('alt'​​​​​​);

    $("tr.alt td[rowspan]").each(function() {
    $(this).parent().nextAll().slice(0, this.rowSpan - 1).addClass('alt');
    });

    $('ins').css("background-color", "#cfc")
}
这非常有效(如果上面有任何低效的地方,请随意添加建议)

我现在遇到的问题是,我的代码隐藏了一堆行(关于为什么与此问题不相关的详细信息),主要的一点是,我希望有一个函数,可以为当前可见行提供替代行颜色

我通过简单地向某些行添加一个类来隐藏行,并对该类调用
.hide()


是否有任何建议可以使用其他行颜色(如上面的代码),但可以在可见行上使用,这样无论隐藏什么,表在alt行颜色方面都是正确的。

我建议您在代码中也向可见行添加一个类,您必须将该类添加到隐藏行。假设您添加了名为visible的类。然后,您可以将上面的交替行代码应用于可见的类:

 $("table.altRow1 tr.visible").filter(function() { 

等等。

当您隐藏行时,可能需要再次调用此函数,以便它可以重新计算奇数行和偶数行。您可以在tablerows上使用not选择器仅获取可见的行,如下所示:

$('table.altRow1 tr:not(.hidden)') 

我最终使用了这个似乎有效的方法:

function UpdateTable() {
$('table.altRow1 tr:visible').removeClass('odd').filter(':odd').addClass('odd');
使用此css:

.altRow1 tr {
     background-color: #FFFFFF;
 }
 .altRow1 tr.odd {
     background-color: #DEDEDE;
 }
链接选择:

$('table tr:visible:even').addClass('alt');

为什么要用一个只返回true的函数进行过滤?@Andre-你能澄清这个问题吗?你在用filter()传递一个只返回true的函数。所以你什么都没过滤。@Andre-哦,我明白了。我在这里确实有一个函数,但我在问题中对它进行了修改,以避免噪音,并专注于要点