我试图为显示的元素设置css属性!= none
这适用于使用.filter()
后的第一个孩子$("#container > li").filter(':not(:hidden)').first().css("margin-right", "0");
但是我也想为nth-child(3n + 1)设置,这不起作用,因为它在计算第n个孩子时也计算隐藏的元素
$("#container > li:nth-child(3n+1)").filter(':not(:hidden)').css("margin-right","0");
我也试过
$("#container > li").filter(':not(:hidden)').find(':nth-child(3n+1)').css("margin-right", "0");
任何想法如何在过滤掉那些没有隐藏的人之后为每4个孩子设置css?
是否存在类似于.thirst()的选择器,用于nth-child()?
答案 0 :(得分:2)
一种可能的方法(针对第一次filter
调用返回的集合中的每个第4个元素):
$("#container > li")
.filter(':visible')
.filter(function(i) {
return (i + 1) % 4 === 0;
})
.css('margin-right', '0');
答案 1 :(得分:1)
$("#container > li:visible").css("margin-right", function(i) {
return i%3 ? null : 0;
});