Mic*_*han 11 jquery css-selectors
我可以像这样设计每个第4个"项目"div
jQuery(".item:nth-child(4n)").addClass("fourth-item");
Run Code Online (Sandbox Code Playgroud)
并且工作正常,但后来我隐藏了一些项目,显示了其他一些项目,并希望重新做这个样式,但只有每个第四项可见的样式.所以我有一个将删除这个样式并重新应用它的函数,但我需要在重新应用样式时指定它只是每隔4个可见项目,而不是每个第4个项目.我知道":visible"选择器,但是没有看到用正确的nth-child选择器链接它,任何想法?
我尝试过这样的各种事情无济于事......
jQuery(".item").removeClass("fourth-item");
jQuery(".item:visible:nth-child(4n)").addClass("fourth-item");
Run Code Online (Sandbox Code Playgroud)
Emi*_*nov 29
:nth-child无论他们的造型是什么,都会扫描父母的孩子.计数:nth-child是相对于父元素,而不是前一个选择器.这在jQuery文档中解释为:nth-child:
使用时
:nth-child(n),无论它们是什么,都会计算所有子项,并且仅当指定的元素与附加到伪类的选择器匹配时才选择它.
使用更简单的方法each完全符合您的要求:
$('#test li:visible').each(function (i) {
if (i % 4 == 0) $(this).addClass('fourth-item');
});
Run Code Online (Sandbox Code Playgroud)