将类添加到每个第3个元素,并使用X类排除元素

时间:2013-10-22 14:29:27

标签: javascript jquery

我试着编写一个循环遍历所有元素的函数,并为每个第3个元素(1,4,7,10等)添加一个类,除非该元素具有类'foo'...

他们是否可以在我的循环中执行此操作?

$('.container12 > .grid_12 > .grid_4').filter(function (index) { 
   return index % 3 === 0;
}).addClass("alpha");

3 个答案:

答案 0 :(得分:4)

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

$('.container12 > .grid_12 > .grid_4:nth-child(3n+1):not(\'.foo\')')
.addClass("alpha");

See fiddle

答案 1 :(得分:4)

怎么样:

$('.container12 > .grid_12 > .grid_4').filter(function (index) { 
   return !$(this).hasClass('x') && index % 3 === 0;
}).addClass("alpha");

Example

答案 2 :(得分:0)

您可能正在寻找:not()选择器:

试试这个:

$(".container12 > .grid_12 > .grid_4 li:not('.foo')")
    .filter(function (index) { 
       return index % 3 === 0;
    })
    .addClass("alpha");

它将alpha类应用于每个第3个元素,忽略具有类foo的元素。

<强> jsFiddle