2011-01-31 80 views
3

我有一个表,并且通常我用这个选择器应用奇数和偶数行:jQuery选择用于与隐藏的行表 - 交替行着色

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

我的表已被插入在各个地方的行,因此为什么我从奇数行中删除它。

我现在已经使用

jQueryTrObject.hide(); 

我想和以前一样采用相同的造型,使交替行,至于对用户来讲都标了奇数和偶数的某些行隐藏起来,和我” d喜欢它考虑到隐藏的行。

我该如何编写一个选择器来做到这一点,因为我必须使用每个和特定的检查?

回答

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

您可以使用:可见选择器仅标记可见行:

table 
    .find('tbody tr:visible:even') 
    .addClass('even') 
.end() 
    .find('tbody tr:visible:odd') 
    .removeClass('even'); 
.end(); 
+1

不会工作......`:visible`过滤器需要位于`:even` /`:odd`之前。 – 2011-01-31 16:14:14