jQuery条带化隐藏了一些元素

时间:2009-11-05 12:39:28

标签: jquery

我有一个jQuery选择器,如下所示:

$('.someClass div div .specificChildClass:nth-child(even)').addClass('alternateLine');

这就像我想要它一样,除非有一个隐藏的元素。我需要选择器来考虑隐藏的元素,而不是将它们纳入条带化。这样,可见元素在页面上正确条带化。

我尝试将我的选择器更改为:

$('.someClass div div .specificChildClass:visible:nth-child(even)').addClass('alternateLine');

然后:

$('.someClass div div .specificChildClass:not(.hiddenClass):nth-child(even)').addClass('alternateLine');

有一个简单的解决方案吗?我知道我可以使用迭代器遍历一个.each循环并检查每个循环,修改迭代器以确定奇数或偶数,但我认为可能有更好的方法。

3 个答案:

答案 0 :(得分:1)

尝试:even -

$('.someClass div div .specificChildClass:visible:even')
  .addClass('alternateLine');

nth-child指的是DOM结构,这不是你想要的。

答案 1 :(得分:0)

尝试这样的事情:

    $('.someClass div div .specificChildClass:visible:nth-child(even)')
    .filter(function(i) {
           $(this).is(':visible').addClass('alternateLine');
    });

希望有所帮助。

答案 2 :(得分:0)

使用:not(:hidden)

$('.someClass div div .specificChildClass:not(:hidden):even').addClass('alternateLine');