0

我需要将一个类添加到子 x 到 div 内的子 x 中。

所以在这个例子中,我想将类添加到孩子 3、4、5、6、7、8、9、10。

现在它只是将类添加到每三个元素。

有什么好的建议可以实现吗?

我有这个 HTML:

  <div id="days">
      <div></div>
      <div></div>
      <div></div>
      <div></div>
      <div></div>
      <div></div>
      <div></div>
      <div></div>
      <div></div>
      <div></div>
      <div></div>
      <div></div>
      <div></div>
  </div>

查询:

 day = 3;
 child_count = 10;
 $('#days > div:nth-child(' + day + 'n+' + child_count + ')').addClass('done');
4

3 回答 3

3

您最好的选择实际上非常简单:

$('#days > div').slice(start, end).addClass('done');

start并且end是从零开始的索引)

演示
文档

于 2013-10-12T23:48:48.307 回答
1

另一种方式,使用:gt:lt

$("#days > div:gt(" + (day-2) + ")").filter(':lt(' + (child_count) + ')').addClass('done');

小提琴

lt 和 gt 的所有索引都是基于 0 的。gt 将选择大于您的开始计数的项目,因此 gt 将day-2选择所有大于索引 1 的项目(即第 2 个,即第 3 个项目),然后过滤它以获取小于您的计数的项目。

于 2013-10-12T23:58:41.770 回答
1

或者可以这样做:http: //jsfiddle.net/ZpZhk/或者这个http://jsfiddle.net/NzGVW/

请注意,这不是动态的,仅满足您的特定情况。

API .netUntil http://api.jquery.com/nextUntil/

接口:.nextAll http ://api.jquery.com/nextAll/

希望它符合您的特定需求,其他方面很好:)

代码

 $('#days > div:nth-child(3)').nextAll().addClass('done');

 alert($('#days').html());

更新

 $('#days > div:nth-child(3)').nextUntil($('#days > div:nth-child(10)') , "div" ).addClass('done');
于 2013-10-12T23:51:19.500 回答