2

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

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

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

可以只用 CSS 来完成,还是我需要加入一些 jQuery 魔法?

4

2 回答 2

3

您将不得不求助于 JavaScript:

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

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


为了稍微提高性能,您可以使用按&位运算符而不是模数:

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

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

于 2013-02-06T20:21:40.397 回答
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/

于 2013-02-07T02:10:56.343 回答