首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在jQuery中迭代唯一的类?

如何在jQuery中迭代唯一的类?
EN

Stack Overflow用户
提问于 2016-04-23 05:12:42
回答 7查看 75关注 0票数 0

我有这份名单,

代码语言:javascript
复制
<ul id="list">
  <li>Item 1</li>
  <li>Item 2</li>
  <li>Item 3</li>
  <li>Item 4</li>
  <li>Item 5</li>
  <li>Item 6</li>
</ul>

我想动态地给它添加一个类,然后得到这样的结果,

代码语言:javascript
复制
<ul id="list">
  <li class="class-1">Item 1</li>
  <li class="class-2">Item 2</li>
  <li class="class-3">Item 3</li>
  <li class="class-4">Item 4</li>
  <li class="class-1">Item 5</li>
  <li class="class-2">Item 6</li>
</ul>

这是我的初始代码,

代码语言:javascript
复制
jQuery(function(){
  var list = jQuery('#list').children('li');
  var arr = ['class-1','class-2','class-3','class-4'];
  jQuery.each(arr, function(index, el) {
    list.addClass(el);
  });
});

但是它所做的就是添加每个列表项上的所有类。我想我真的不知道我在这里做什么。如果有人能给我指明正确的方向,我会非常感激的。

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2016-04-23 05:24:30

请重复你的列表而不是数组..。你可以试试这段代码

代码语言:javascript
复制
jQuery(function(){
  var list = jQuery('#list').children('li');
  var arr = ['class-1','class-2','class-3','class-4'];

  list.each(function(index, el) {
      $(el).addClass(arr[index % arr.length]);
  });

});
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<ul id="list">
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
<li>Item 4</li>
<li>Item 5</li>
<li>Item 6</li>
</ul>

票数 1
EN

Stack Overflow用户

发布于 2016-04-23 05:17:57

你可以用each来做,

代码语言:javascript
复制
$('#list > li').each(function(i, elm) {
    $(this).addClass("class-" + ((i % 4) + 1));
});

演示

票数 2
EN

Stack Overflow用户

发布于 2016-04-23 05:17:52

您可以使用*nth-child()伪选择器和基于数组长度和索引的方程以及jQuery.each()forEach()数组迭代器。

代码语言:javascript
复制
jQuery(function() {
  var arr = ['class-1', 'class-2', 'class-3', 'class-4'],
    len = arr.length;
  jQuery.each(arr, function(i, v) {
    $('#list li:nth-child(' + len + 'n+' + (i + 1) + ')').addClass(v);
  })
})
代码语言:javascript
复制
.class-1 {
  color: red
}
.class-2 {
  color: green
}
.class-3 {
  color: blue
}
.class-4 {
  color: yellow
}
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<ul id="list">
  <li>Item 1</li>
  <li>Item 2</li>
  <li>Item 3</li>
  <li>Item 4</li>
  <li>Item 5</li>
  <li>Item 6</li>
</ul>

FYI :孩子是如何工作的?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36806909

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档