我有一个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循环并检查每个循环,修改迭代器以确定奇数或偶数,但我认为可能有更好的方法。
答案 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');