Jquery eq()以选择每四个类
我想使用eq()选择每四个项目,以添加一个类,使右边距为零。我有一套混合的产品,它有一个子导航,可以切换产品的开关 nth()不起作用,因为即使选择了display:none和特定类,它也会计算所有产品的数量 JqueryJquery eq()以选择每四个类,jquery,Jquery,我想使用eq()选择每四个项目,以添加一个类,使右边距为零。我有一套混合的产品,它有一个子导航,可以切换产品的开关 nth()不起作用,因为即使选择了display:none和特定类,它也会计算所有产品的数量 Jquery $('li.prod').toggle(true) $('li.prod:visible:nth child(4n)').addClass('prod-end') $('li.button')。单击(函数(){ })) HTML <div class="
$('li.prod').toggle(true)
$('li.prod:visible:nth child(4n)').addClass('prod-end')
$('li.button')。单击(函数(){
}))
HTML
<div class="subNav">
<ul>
<li class="button active" id="all">all</li>
<li class="button" id="men_apparel">men</li>
<li class="button" id="women_apparel">women</li>
<li class="button" id="kids">kids</li>
</ul>
</div>
<div class="products">
<ul class="products_wrapper">
<li class="prod women">
</li>
<li class="prod women">
</li>
<li class="prod women">
</li>
<li class="prod women">
</li>
<li class="prod men">
</li>
<li class="prod men">
</li>
<li class="prod men">
</li>
<li class="prod kids">
</li>
<li class="prod kids">
</li>
<li class="prod kids">
</li>
<li class="prod kids">
</li>
</ul>
</div>
- 全部
女性
孩子们
-
-
-
-
-
-
-
-
-
-
-
HTML
提前谢谢 怎么样
$('.foo:visible:nth-child(4)')
改变
$('li.prod:eq(4n)').addClass('prod-end')代码>
到
$('li.prod:nth child(4n)').addClass('prod-end')代码>
小提琴:
或者这就是你的意思
小提琴:
在这里:
我认为您可能必须使用每个来处理一些可以隐藏的事实:
$("ul li:visible").each(function(i, el){
if(i%4 === 3){
$(this).addClass("prop_end");
}
});
你能详细说明为什么不行吗?@Buildingbrick:“行不通”是个很糟糕的评论。请解释什么不起作用,什么没有发生,什么错误消息…我没有调查太多,所以我不知道除了它不起作用,所以我继续。很抱歉,我无法提供更多信息。即使其显示为:无,它也会计数$('li.+$(this.text()+':可见:第n个子(4n)').addClass('prod-end');如果是这种情况(看起来很奇怪),请尝试:$('li:visible')。过滤器('nth child(4)')
很抱歉,我没有将代码更改回其原始状态。以上是我原本拥有的。等式(3)将仅计入第4项。我希望它每四个项目都添加一个类,从所选的产品类开始。True。但是代码确实会将类添加到列表中的每四个项目中。只有当你点击“女性”的时候才会用到eq(3)。我真的很想避开例外情况,因为我有很多不同种类的产品,它们都需要一个特殊的代码。我只想用一行代码。对不起,上面的代码不是我的原始代码。现在它是正确的。是的,这确实有效,但当我切换一个不可见的产品时,它仍然被计算在内。
$("ul li:nth-child(4n)").addClass("prop-end");
$('.products_wrapper li').each(function(){
var i = $(this).index()+1;
if (i%4==0) {
$(this).addClass('prod-end');
};
});
$("ul li:visible").each(function(i, el){
if(i%4 === 3){
$(this).addClass("prop_end");
}
});