javascript - 如何在 JS dom 中使用 forEach 选择所有按钮(无 jQuery)
问题描述
我有 3 个类名为“btn”的按钮;如何使用 addEventListener 和 forEach 选择所有按钮?我不一一选择HTML代码:
<div class="display">
<input type="number" class="text">
</div>
<div class="buttons">
<input type="button" value="1" class="btn">
<input type="button" value="2" class="btn">
<input type="button" value="3" class="btn">
</div>
JS代码:
const display = document.querySelector(".text"),
btn = document.querySelectorAll(".btn");
btn.addEventListener("click", buttons);
function buttons() {
display.value = btn.value;
};
解决方案
你可以for...of
这样使用:
const btns = document.querySelectorAll('.btn');
for (const btn of btns) {
btn.addEventListener('click', function() {
console.log(this.value);
});
}
<input type="button" value="1" class="btn">
<input type="button" value="2" class="btn">
<input type="button" value="3" class="btn">
对于 using forEach()
,您必须btns
首先使用以下方式将 DOM 节点转换为数组Array.from()
:
const btns = document.querySelectorAll('.btn');
Array.from(btns).forEach(function(btn) {
btn.addEventListener('click', function() {
console.log(this.value);
});
});
<input type="button" value="1" class="btn">
<input type="button" value="2" class="btn">
<input type="button" value="3" class="btn">
推荐阅读
- html - 如何在 Bootstrap 列上放置间距?
- c# - 调用 set 属性后,是否也会更新该字段?并且在同一个类中,应该使用属性还是字段?
- javascript - 如何使用 vue-papa-parse 在 vue 组件中使用外部 csv 文件?
- pug - 多页网站模板如何在 PUG 中正确显示?
- c - 为什么在三元函数中分配给数组类型的表达式失败
- forms - 如何在不提交的情况下从 Microsoft Forms 下载或提取数据?
- sql - 使用日期字段连接 Qlik 上的表(提供了类似的 SQL 语句)
- ios - 在 SwiftUI 中关闭工作表时如何刷新先前的视图?
- r - R工作室中的write.csv
- reactjs - 无法解析模块 swiper/css 的路径