如果我使用循环创建大量 HTML 元素,例如
for (i= 1; i < 100; i++) {
var my_element = document.createElement ("td");
row.appendChild (my_element);
my_element.onclick = function () {my_function (i));
}
然后当单击该元素时, i 的值传递给my_function
始终为 100,无论调用它的数字元素是什么。我已经通过使用解决了这个问题
my_element.id = "something"+i;
my_element.onclick = function (e) {my_function (e.target.id)};
(对于 Internet Explorer,target
需要是srcElement
显然。)我很好奇是否有任何方法可以创建函数而不必像这样将 ID 添加到元素中。
的价值i
随着循环的每次迭代而变化。你需要一个闭包来捕获的值i https://stackoverflow.com/questions/1331769/access-outside-variable-in-loop-from-javascript-closure/1331796#1331796:
(function(i) {
my_element.onclick = function () {my_function (i)};
}(i))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)