抱歉,如果这是一个愚蠢的问题,我是 super 新人...... 为什么我们需要先定义var然后运行循环? 代码似乎以其他方式工作得很好。 我缺少的第一种方式有好处吗?
例如。const buttons = document.querySelectorAll('.button');
buttons.forEach(button => button.addEventListener('event', function));
而不仅仅是:
document.querySelectorAll('.button').forEach(button => {
button.addEventListener('event', function)
});
感谢您的帮助!
最佳答案
Why do we need to define the var first and then run the loop?
你不知道。
如果您要对这组元素执行不止一件事,您可能会选择这样做(因为与 getElementsByTagName
不同,querySelectorAll
不重用该集合;每次调用它都会重新查询 DOM)。但是,如果您只做一件事,那么您没有理由不能像第二个示例中所示那样做到这一点。
旁注:querySelectorAll
中的 NodeList
仅在相对现代的浏览器上具有 forEach
。但是你可以为年纪较大的人简单地填充它; this answer展示了如何实现。
关于javascript - 为什么我们创建一个变量来引用类,而不是仅仅使用 document.querySelector (".class")?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59811246/