jquery当前可见的第n个孩子

我可以像这样设计每个第4个“项目”div

jQuery(".item:nth-child(4n)").addClass("fourth-item"); 

并且工作正常,但后来我隐藏了一些项目,显示了其他一些项目,并希望重新做这个样式,但只有每个第四项可见的样式。 所以我有一个function,将删除这个样式并重新应用它,但我需要在重新应用样式时指定它只是每隔4个可见项目,而不是每第4个项目。 我知道“:visible”选择器但是没有看到用正确的nth-child选择器链接它,任何想法?

我尝试过这样的各种事情但无济于事……

 jQuery(".item").removeClass("fourth-item"); jQuery(".item:visible:nth-child(4n)").addClass("fourth-item"); 

:nth-child扫描父母的孩子,无论他们的造型是什么。 count in :nth-child是相对于父元素,而不是前一个选择器。 这在jQuery文档中解释为:nth-child

使用:nth-child(n) ,所有子节点都被计数,无论它们是什么,只有在与附加到伪类的选择器匹配时才选择指定的元素。

使用更简单的方法, each方法完全符合您的要求:

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