javascript - 如何在 JS dom(无 jQuery)中使用 forEach 选择所有按钮

标签 javascript dom foreach addeventlistener

我有 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">

要使用 forEach(),您必须首先使用 Array.from()btns DOM 节点转换为数组,例如:

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">

关于javascript - 如何在 JS dom(无 jQuery)中使用 forEach 选择所有按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51215161/

相关文章:

javascript - 使用JQuery遍历DOM结构,找到位于HTML 'comment'之后的特定<table>元素

php - 问多保存数据表

c++:字符串中的每一行(不是文件)

javascript - Materialise 日期选择器不触发 ui

Javascript/jQuery 图像旋转器,例如

将 html 移动到父站点后,Javascript 停止工作

javascript - 无法在 JavaScript 中过滤项目

javascript - 当主体函数进行条件检查时,useEffect 钩子(Hook)应该返回什么?

html - 哪些 DOM 元素不是 HTML 元素?

JavaScript:将 HTML 列表分成两半