对于循环jQuery,重启4项后

时间:2015-10-07 11:44:57

标签: javascript jquery for-loop

我在jquery中使用for循环进行了一些努力。我有一个班级.row的div。在该div内部有许多.item div。我事先并不知道物品的数量。

我想要的是从 0 开始计数并以 3 结束。像(0,1,2,3,0,1,2,3 ......等)

HTML:

<div class="row cl">
    <div class="item"></div>
</div>

我尝试了什么:

$('.row > .item').each(function(i){
    for(i=0;i<4;++i){
       // Here i want to add a class (repeatedly) if the index of the .item is 3.
    }
});

上述示例中的结果无法正常工作。我随处可见3个人。我知道如何添加一个关于计数部分的课程。

  

我通常可以使用像:nth-child()这样的CSS选择器,但我需要它   在IE 8中工作,并且不支持所有子选择器。

6 个答案:

答案 0 :(得分:2)

其中一些答案错误

$('.row > .item').each(function(i){
   if (i % 4 == 3)
      // Add class.
      $(this).addClass("newclass");
});

晚安

答案 1 :(得分:1)

您只需将i值与4进行比较:

$('.row > .item').each(function(i){
   if (i % 3 == 0 && i != 0)
      // Add class.
      $(this).addClass("newclass");
});

或者你也可以使用jQuery&#39; s:

$('.row .item:nth-child(3n)').addClass("active");

答案 2 :(得分:0)

问题是您正在使用for循环重置迭代器。这样做:

$('.row > .item').each(function(i){
    if (i % 3 == 0 && i != 0) {
       // Here i want to add a class if the index of the .item is 3.
    }
});

答案 3 :(得分:0)

只需比较这样的索引:

$('.row > .item').each(function( i,el ){
      if (i == 3)
          $(el).addClass("newclass");
});

答案 4 :(得分:0)

根据我的理解,您希望在 div 下使用类'row'为每个第四个 div 添加一个类,使用类'item'。

您可以使用以下代码段:

$('.row > .item').each(function(i, ele){
    if((i+1) %4 ===0)
    //Add class using $(ele).addClass();
});

此外,您可以使用CSS3伪选择器(nth-child)。如果您需要有关解决方案的帮助,请与我们联系。

答案 5 :(得分:-2)

如果要为索引为3的多个项添加一个类,可以使用余数运算符

$('.row .item').each(function(i){
   if (i % 3 == 0 && i != 0)
      $(this).addClass("you-new-class");
});