jQuery为每组N个元素添加一个递增的类

时间:2013-07-16 15:28:00

标签: javascript jquery jquery-selectors

我需要将一个类(并使用其他值)添加到li中,并为每组4个li增加它。像这样:

这就是我所拥有的:

<ul>
  <li>1</li>
  <li>2</li>
  <li>3</li>
  <li>4</li>
  <li>5</li>
  <li>6</li>
  <li>7</li>
  <li>8</li>
  <li>9</li>
  <li>10</li>
</ul>

这就是我需要的:

<ul>
  <li class="group-1">1</li>
  <li class="group-1">2</li>
  <li class="group-1">3</li>
  <li class="group-1">4</li>
  <li class="group-2">5</li>
  <li class="group-2">6</li>
  <li class="group-2">7</li>
  <li class="group-2">8</li>
  <li class="group-3">9</li>
  <li class="group-3">10</li>
</ul>

3 个答案:

答案 0 :(得分:5)

DEMO

$('ul').find('li').each(function(i){
    $(this).addClass('group-'+parseInt((i/4+1),10));
});

答案 1 :(得分:2)

var ul = $('ul');
ul.find('li').addClass(function(index){
    //get the group number based on the index of the item:
    var group_number = parseInt(index/4+1);
    //return the new class name:
    return 'group-'+ group_number;
});

演示:http://jsfiddle.net/maniator/ZenzP/

答案 2 :(得分:1)

FIDDLE

你可以这样做:

var j = 1;
$('li').each(function(i) {
    $(this).addClass("group-" + j);
    if (i % 4 == 3) j++;
});

OR

$('li').each(function(i) {
    $(this).addClass("group-" + Math.floor(i/4 + 1));
});