我正在尝试从节点列表向每个html元素添加一个eventListener,并将相同的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
答案 0 :(得分:1)
您可以使用传递给处理程序的event
对象,而不是使用闭包(如注释中所示):
programs[i].addEventListener("click", (evt) => testFunc(evt.currentTarget))
然后,单击的HTML元素将传递给回调。