jquery当前可见的第n个子项

jquery当前可见的第n个子项,jquery,css-selectors,Jquery,Css Selectors,我可以这样设计每个第四个“项目”分区 jQuery(".item:nth-child(4n)").addClass("fourth-item"); 这很好,但我隐藏了一些项目,显示了一些其他项目,并想重新做这个样式,但只对每四个可见的项目进行样式设置。因此,我有一个函数,将删除此样式并重新应用它,但我需要在样式的重新应用中指定,它只是每4个可见项,而不是每4个项。我知道“:visible”选择器,但看不到它与第n个子选择器的正确链接,有什么想法吗 我试过各种各样的方法,但都没有用 jQue

我可以这样设计每个第四个“项目”分区

  jQuery(".item:nth-child(4n)").addClass("fourth-item");
这很好,但我隐藏了一些项目,显示了一些其他项目,并想重新做这个样式,但只对每四个可见的项目进行样式设置。因此,我有一个函数,将删除此样式并重新应用它,但我需要在样式的重新应用中指定,它只是每4个可见项,而不是每4个项。我知道“:visible”选择器,但看不到它与第n个子选择器的正确链接,有什么想法吗

我试过各种各样的方法,但都没有用

jQuery(".item").removeClass("fourth-item");
jQuery(".item:visible:nth-child(4n)").addClass("fourth-item");
扫描父对象的子对象,无论其样式是什么。中的计数是相对于父元素的,而不是前一个选择器。这在jQuery文档中对
:n子项进行了解释:

使用
:n子元素(n)
,所有子元素都将被计数,而不管它们是什么,并且仅当指定的元素与附加到伪类的选择器匹配时,才会选择该元素

使用一种更简单的方法处理
每一个
,可以完全满足您的需要:

$('#test li:visible').each(function (i) {
    if (i % 4 == 0) $(this).addClass('fourth-item');
});

那要看情况了!请注意,
n个子项
是基于
1
的,而这里的
i
是基于
0
的。答案完美。我确实需要使用@mbehan的I+1建议,这样它才能在每4个元素上按预期工作。