JQuery选择器用于带有隐藏行的表格 - 交替行颜色

3

我有一张表格,通常使用以下选择器来应用奇数和偶数行:

table.find('tbody tr:even').addClass('even');
table.find('tbody tr:odd').removeClass('even');

我的表格中有行被插入到不同的位置,因此我将其从奇数行中删除。

现在我使用了某些方法来隐藏某些行。

jQueryTrObject.hide();

我希望应用与以前相同的样式,以便用户感到交替的行是奇数和偶数标记,并且我希望它考虑隐藏行。

我该如何编写选择器来实现这一点?还是我必须使用each并进行特定检查?

4个回答

6
使用:visible选择器。
table.find('tbody tr.even').removeClass('even');
table.find('tbody tr:visible:even').addClass('even');

记得先使用它,这样:even过滤器才能生效。


0

试一下这个:

table.find('tbody tr').removeClass('even')
    .filter(':visible:even').addClass('even');

0
使用:not(:hidden)选择器。
table.find('tbody tr:not(:hidden):even').addClass('even');

0
您可以使用 :visible 选择器来标记可见行:
table
    .find('tbody tr:visible:even')
    .addClass('even')
.end()
    .find('tbody tr:visible:odd')
    .removeClass('even');
.end();

1
那样不行... :visible 过滤器需要放在 :even/:odd 之前。 - Gabriele Petrioli

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接