【发布时间】:2022-01-14 19:02:27
【问题描述】:
我正在尝试添加事件侦听器,但没有结果。我知道 JavaScript 有一个提升功能,但我相信我尝试了所有方法,除了正确的解决方案。
const cbox = document.querySelectorAll(".box");
function doit() {
for (let i = 0; i < cbox.length; i++){
cbox[i].classList.add("red");
}
}
cbox.addEventListener("click", doit, false);
有人能看出我犯的错误吗?
【问题讨论】:
-
为什么要在
doit()中使用循环来添加red类? -
因为 querySelectorAll 返回一个对象,所以必须迭代对吗?
-
是的,它返回一个类似数组的对象。下一个问题是:为什么不使用循环来分配事件处理程序? ;)
-
您的意思是在处理程序中运行 for 循环,反之亦然?我都试过了。
-
.querySelectorAll()返回一个没有.addEventListener()方法的NodeList。您必须在列表中的每个项目上添加事件,就像在类中执行此操作一样。
标签: javascript addeventlistener