使用jquery每3 ul应用不同的css类

时间:2010-12-18 21:01:04

标签: jquery css loops

我有很多li并且我循环遍历它们并且以5个为一组包装但是我需要为每3个组应用不同的类,所以它看起来像这样

<ul class="class1"><li></li><li></li> <li></li><li></li><li></li></ul>
<ul class="class2"><li></li><li></li><li></li><li></li><li></li></ul>  
<ul class="class3"><li></li><li></li><li></li><li></li><li></li></ul>  

<ul class="class1"><li></li><li></li><li></li><li></li><li></li></ul>  
<ul class="class2"><li></li><li></li><li></li><li></li><li></li></ul>  
<ul class="class3"><li></li><li></li><li></li><li></li><li></li></ul>    

<ul class="class1"><li></li><li></li><li></li><li></li><li></li></ul>  
<ul class="class2"><li></li><li></li><li></li><li></li><li></li></ul>  
<ul class="class3"><li></li><li></li><li></li><li></li><li></li></ul>  

我用它来分组

var lis = $(".leftHover ul li");  
for(var i = 0; i < lis.length; i+=5) { 
  is.slice(i, i+5).wrapAll(<ul></ul>);  
}

2 个答案:

答案 0 :(得分:4)

  

每3 ul应用不同的css类   用jquery

您可以像这样使用nth-child选择器:

$(".leftHover ul li:nth-child(3n)").addClass('className');

这会将类添加到具有类<li>的元素下的每个第三个leftHover。您可以将3的参数更改为符合您要求的任何内容。

答案 1 :(得分:1)

你能做到吗......

var lis = $(".leftHover ul li");  
for(var i = 0; i < lis.length; i+=5) { 
  lis.slice(i, i+5).wrapAll('<ul class="class' + (i%3) + '"></ul>');  
}

这将以相反的方式命名它们.. class2,class1,class0。将它们作为class1,class2,class3。您只需将(i%3)更改为(3-(i%3))