Javascript jQuery-2伪选择器?
可能重复:Javascript jQuery-2伪选择器?,javascript,jquery,css,jquery-selectors,css-selectors,Javascript,Jquery,Css,Jquery Selectors,Css Selectors,可能重复: 这可能吗 这是我的密码: $("ul#filterlist li:nth-child(3n)").css("marginTop", "0"); 如果我想将其应用于列表中,但仅应用于列表中可见的项目(有些项目被隐藏,我不想将其计算在内),那么如何实现?我的想法是: $("ul#filterlist li:nth-child(3n)").not(":hidden").css("marginTop", "0"); 但这行不通。我也不会尝试任何东西:可见的 有什么想法吗?谢谢。您正在寻
这可能吗 这是我的密码:
$("ul#filterlist li:nth-child(3n)").css("marginTop", "0");
如果我想将其应用于列表中,但仅应用于列表中可见的项目(有些项目被隐藏,我不想将其计算在内),那么如何实现?我的想法是:
$("ul#filterlist li:nth-child(3n)").not(":hidden").css("marginTop", "0");
但这行不通。我也不会尝试任何东西:可见的
有什么想法吗?谢谢。您正在寻找的方法是
filter()
。它将根据给定的选择器筛选jQuery对象列表。由于找不到“not:hidden
”选择器,我使用了相反的:visible
$("ul#filterlist li:nth-child(3n)").filter(":visible").css("marginTop", "0");
希望这有帮助 尝试链接:选择器
$("ul#filterlist li:nth-child(3n):not(:hidden)").css("marginTop", "0");
如回答中所示:
如果不想计算隐藏元素,可以尝试使用以下代码
$("ul#filterlist li:visible").filter(function(index){
return (index+1)%3 == 0?true:false;
}).css("marginTop", "0");
请参见JSFIDLE中的示例,如果它是
:not:hidden
,则它必须是:visible
。可见性也可以是:collapse,尽管它在非表元素上使用时会隐藏其他示例$(“#divdetails span:nth child(2):contains('s'))。它不是:not的副本,因为:not不是解决方案的一部分,这正是我认为它在逻辑上会起作用的方式,但事实并非如此,谢谢