2

我正在使用网格控件,其中隐藏了一个 tr 的表格,单击该按钮即可打开。所以我尝试了以下函数将类添加到奇数行。

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

});

但问题是它也计算隐藏的TR..所以我需要不计算隐藏TR的函数并将类添加到查看的Tr

4

5 回答 5

5

你可以这样做:

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

此外,如果您的隐藏tr有一些特殊的课程或其他东西,您可以这样做:

$(this).children('tbody').children(':not(.<your hidden class>):odd')
    .addClass('grey');
于 2013-03-13T14:23:45.397 回答
2

您可以尝试将:visible伪选择器与:odd.

现场示例:http: //jsfiddle.net/SAdEE/

于 2013-03-13T14:23:22.507 回答
2

尝试

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

http://jsfiddle.net/K3vCD/

于 2013-03-13T14:24:30.153 回答
1

尝试添加:visible选择器。

$(this).children('tbody').children(':visible:odd').addClass('grey');
于 2013-03-13T14:23:39.463 回答
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.

于 2013-03-13T14:31:02.203 回答