替代行颜色,但有例外

时间:2013-02-06 20:19:55

标签: jquery css

我有一张隐藏了一些行的表。我确实展示了它们,但需要它。用户必须执行操作才能显示这些行。每个隐藏的行都有class =“hideMe”,带有TR标记。

我想为交替的行添加一个类,以改变颜色,但仅限于那些始终可见的颜色。通常它很简单,但我不确定如何合并隐藏行异常。

$('.myTable tr:odd:not(hideMe)').addClass('altRow');  

可以用CSS完成,还是需要投入一些jQuery魔法?

2 个答案:

答案 0 :(得分:3)

您必须使用JavaScript:

$('.myTable tr:not(.hideMe)').each(function (i) {
    $(this).toggleClass( 'altRow', !! (i % 2) );
});

这是小提琴:http://jsfiddle.net/PxT93/


对于a tiny increase in performance,您可以使用&按位运算符而不是模数:

$('.myTable tr:not(.hideMe)').each(function (i) {
    $(this).toggleClass( 'altRow', !! (i & 1) );
});

这是小提琴:http://jsfiddle.net/PxT93/1/

答案 1 :(得分:1)

实际上,只需稍微调整一下你的代码,你就会得到一个很好的解决方案:

$('.myTable tr:not(.hideMe):odd').addClass('altRow');

在此处查看:http://jsfiddle.net/HYHWJ/

另一种解决方案是:

$('.myTable tr:not(.hideMe)')
  .removeClass('altRow')
  .filter(':odd')
  .addClass('altRow'); 

在此处查看此工作:http://jsfiddle.net/r4N5g/