This question already has answers here:
JavaScript closure inside loops – simple practical example
(44个答案)
3年前关闭。
我试图将一个eventListener添加到节点列表中的每个html元素,并将相同的html元素作为参数传递给回调函数。我的代码看起来像这样。
问题是我期望
然后,单击的HTML元素将传递到回调。
(44个答案)
3年前关闭。
我试图将一个eventListener添加到节点列表中的每个html元素,并将相同的html元素作为参数传递给回调函数。我的代码看起来像这样。
let programs = document.getElementsByClassName('program-name')
for (i = 0; i < programs.length; i++){
programs[i].addEventListener("click", () => testFunc(programs[i]))
}
function testFunc(program) {
console.log(program)
}
问题是我期望
console.log(program)
将html元素记录到控制台,但是所有日志都是undefined
最佳答案
除了使用闭包(如注释中所建议的那样),您还可以使用传递给处理程序的event
对象,如下所示:
programs[i].addEventListener("click", (evt) => testFunc(evt.currentTarget))
然后,单击的HTML元素将传递到回调。
关于javascript - 难以将html元素从节点列表传递到匿名函数中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41683055/
10-11 13:33