【发布时间】:2016-01-26 07:20:14
【问题描述】:
我的 DOM 上有单独的元素,ID 为“inner_1”到“inner_20” 例如inner_1、inner_2、inner_3 等。
我创建了一个 javascript 循环,它将创建单独的事件侦听器函数来定位每个元素,但它为每个函数分配了错误的值。
我的 .js 文件中的循环
for (section = 1; section < 21; section++) {
$('#inner_'+section).click(function(event) {
alert('Hooray!'+section);
event.preventDefault();
});
};
输出
=> "Hooray!21"
对于我点击的每个元素,无论是“inner_1”还是“inner_15”。
如何让它为每个功能显示正确的数字,例如“inner_14”将有“14”的警报
谢谢!
【问题讨论】:
-
除了答案之外,考虑一个真正简单的解决方案,即
for (let section=然而,更基本的是,使用构造的 ID 作为解决 DOM 元素的一种方式是一种反模式。您将花费一生的时间进行字符串算术以创建 ID,然后在 DOM 中跟踪它们,然后在某些情况下再次将 ID 重新分开。更好的是,例如,用一个类来识别inner元素,然后用getElementsByClassName或querySelectorAll将它们全部抓取,然后循环遍历结果以添加事件监听器。 -
哇,这项技术对我来说将是无价之宝!这种想法将有助于我成为一个更好的开发者!!感谢您的提示和指导 torazaburo!
标签: javascript ruby-on-rails-4 dom for-loop