将类添加到tr alternate

时间:2013-03-13 14:21:54

标签: jquery html-table tablerow

我正在使用网格控件,其中表有一个tr被隐藏,点击后打开..所以我尝试了下面的函数将类添加到奇数行。

<script type="text/javascript">
// Activate TableStyling
jQuery(document).ready(function () {
    $('table.management').each(function () {
        $(this).children('tbody').children(':odd').addClass('grey');
    });

});

但是问题是隐藏的TR也是如此...所以我需要的功能是不计算那个隐藏的TR&amp;将该类添加到查看的Tr的

5 个答案:

答案 0 :(得分:5)

你可以这样做:

$(this).children('tbody').children(':visible:odd').addClass('grey');

此外,如果你的隐藏tr有一些特殊的课程,你可以这样做:

$(this).children('tbody').children(':not(.<your hidden class>):odd')
    .addClass('grey');

答案 1 :(得分:2)

您可以尝试将:visible伪选择器与:odd混合使用。

实例:http://jsfiddle.net/SAdEE/

答案 2 :(得分:2)

$(this).children('tbody').children(':visible:odd').addClass('grey');

http://jsfiddle.net/K3vCD/

答案 3 :(得分:1)

尝试添加:visible选择器。

$(this).children('tbody').children(':visible:odd').addClass('grey');

答案 4 :(得分:1)

大多数(如果不是全部)答案都假定您对“隐藏”的定义与jQuerys相同。在其他情况下,“隐藏”可能类似于高度:0px,带有重叠元素的模糊z索引等。在这些非常罕见的情况下,过滤方法可以与您自己的逻辑一起使用来对被视为“隐藏”的内容进行分类。

$(this).children('tbody').filter(function(){
   return this.isNotAHiddenTR(); // your custom logic.
   // return $(this).is(':visible'); // the most likely solution
}).children(':odd').addClass('grey');

此外,:visible选择器返回visibility: hidden的元素。