在一个类中获取一个元素?

pan*_*hro 2 javascript

如何获取类中的每个按钮并向其添加事件侦听器?

就像是:

var item = document.getElementsByClassName("holder").getElementsByTagName("button");

Array.from(item).forEach(function(element) {
  element.addEventListener('click', () => {
    console.log('a');
  }, false);
});
Run Code Online (Sandbox Code Playgroud)
<div class="holder">
  <button>click me</button>
</div>
<div class="holder">
  <button>click me</button>
</div>
Run Code Online (Sandbox Code Playgroud)

Mr.*_*irl 5

您可以使用document.querySelectorAll它返回可迭代列表.

您的以下调用document.getElementsByClassName("holder")将返回元素列表,您必须遍历该列表才能访问该按钮的调用.

我将事件参数添加到侦听器,以便您可以跟踪单击的目标按钮.

document.querySelectorAll('.holder button').forEach(button => {
  button.addEventListener('click', (e) => {
    console.log('Button: ' + e.target.name);
  }, false);
});
Run Code Online (Sandbox Code Playgroud)
<div class="holder">
  <button name="button-1">click me</button>
</div>
<div class="holder">
  <button name="button-2">click me</button>
</div>
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请查看: