javascript - 为什么我们创建一个变量来引用类,而不是仅仅使用 document.querySelector (".class")?

标签 javascript

抱歉,如果这是一个愚蠢的问题,我是 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/

相关文章:

javascript - 无法使用 javascript 函数更新 div

javascript - 是否可以使用 new option() 将 ondblclick 添加到选项字段?

javascript - 以 Angular 形式设置键和值

javascript - Angularjs 在创建 dom 元素时的性能,纯 js 与 jqlite

javascript - CRM 功能区工作台 - 第三方库

javascript - 如何使用 jquery.getjson() 编写多个物化 css 卡

Javascript 将冒号附加到未知长度的数字上?

javascript - 类型错误 : Cannot read property 'db' of undefined

JavaScript 随机数生成 : Unique 500 Integers in Space 10^6: Getting Collisions

javascript - 如何从节点列表访问 HTML 元素的内容?