Jquery eq()以选择每四个类

Jquery 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="

我想使用eq()选择每四个项目,以添加一个类,使右边距为零。我有一套混合的产品,它有一个子导航,可以切换产品的开关

nth()不起作用,因为即使选择了display:none和特定类,它也会计算所有产品的数量

Jquery


$('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");
    }
});