我在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中工作,并且不支持所有子选择器。
答案 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");
});