javascript - 遍历元素并添加索引号

标签 javascript jquery

为什么此代码在单击时将 class=hello5 添加到所有 h2 元素?有 4 个 h2 元素。

for (i=0; i < $('h2').length; i++) {
  $('#' + i).click(function(index) {
    $(this).addClass('hello' + i)
  })
};

我希望它添加 class=hello0class=hello1 等。

HTML:

<h2 id="0">0</h2>
<h2 id="1">1</h2>
<h2 id="2">2</h2>
<h2 id="3">3</h2>

我需要添加另一个循环吗?我很困惑。谢谢。

最佳答案

回调中的

i 与您递增的 i 相同。当这些回调函数被触发时,i 的值将为 8,因此所有回调都将添加相同的类。

通常避免在循环中创建事件处理程序。一次选择这些元素并向所有元素添加一个事件处理程序要容易得多:

$('h2').click(function() {
    $(this).addClass('hello' + this.id);
});

Demo on jsfiddle

关于javascript - 遍历元素并添加索引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17627300/

相关文章:

javascript - 结果总是分页时的服务器端分页

javascript - 数据列表垂直滚动在 Chrome 中不起作用

asp.net - 使用 jquery.load 将对象数组传递给 MVC 3

javascript - 如何将样式仅应用于 HTML 中的一个 div?

javascript - 简单的异或消息(Javascript/Tcl)?

javascript - Protractor - getText() 返回数组而不是字符串

javascript - 在三星S5中,maxlength属性不起作用

javascript - 如果未经授权,则限制站点访问 + D​​IV 建议回流

javascript - 输入文件类型隐藏

javascript - 如何动态扩展 div 的宽度以适合一个非常长的单词?