javascript - 循环遍历每个元素并按顺序打印值

标签 javascript jquery

我有一些代码,我想循环遍历元素的数量,并在每个元素内设置从 1 到任意数量的文本。我的方法如下:

$(function() {
  var items = $(".item");
  items.each(function(i) {
    var itemCount = i + 1;
    items.text(itemCount);
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<span class="item"></span>
<span class="item"></span>
<span class="item"></span>
<span class="item"></span>
<span class="item"></span>
<span class="item"></span>

但是它打印了总数 6 次。在这个具体示例中,为 6。

我理解 .each() 的方式是它单独迭代每个元素,我的想法是我能够传入 itemCount 的值并有它单独计算每个元素。如果我执行常规的普通 JS 循环,则代码片段中的结果将有意义,因为它在打印之前完成。

如何更改此方法以按顺序打印数字 (1 2 3 4 5 6) 而不是元素总数 6 次?

最佳答案

您必须使用 this 作为选择器,例如 $(this)this 引用每个循环上的元素。

目前,您正在使用items,它引用类为.item的所有html元素

$(function() {
  var items = $(".item");
  items.each(function(i) {
    var itemCount = i + 1;
    $(this).text(itemCount);
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<span class="item"></span>
<span class="item"></span>
<span class="item"></span>
<span class="item"></span>
<span class="item"></span>
<span class="item"></span>

关于javascript - 循环遍历每个元素并按顺序打印值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48708426/

相关文章:

javascript - 用于桌面应用程序的 Dojox/app。 (道场 1.9)

javascript - 当在其上方的 div 上使用 .slideToggle 时,导航菜单向下移动

javascript - 试图获得一个按钮来取消隐藏图片

javascript - 获取位于表单内的第二个输入的值。 javascript 查询

javascript - 根据以字符串形式给出的数字键对对象数组进行排序

javascript - 将 PHP 代码传递给 Javascript 不起作用

javascript - jquery 根据内容动态设置容器的高度,然后再次调整大小

javascript - 使用 JQuery 查找 body 标签下所有子级的宽度,直至特定代

jquery - 如何使移动微调器的边缘变圆 css

javascript - JQuery 客户端在本地主机之外失败