javascript - 我如何使 QuerySelectorAll() 选择所有 html 标签并通过访问 html 标签的索引进行更改

标签 javascript html

例如:我有以下代码

    <div class="set">
    <button class =  "w drum"> w  </button>
    <button class =  "a drum"> a  </button>
    <button class =  "s drum"> s  </button>
    <button class =  "d drum"> d  </button>
    <button class =  "j drum"> j  </button>
    <button class =  "k drum"> k  </button>
    <button class =  "l drum"> l  </button>
  </div>
现在我想选择所有按钮标签并在所有按钮中执行 .addEventListener 函数。我通过 for 循环实现它。但我想问有没有什么方法可以通过以下方式实现它......
  document.querySelectorAll("button")[0,1,2,3,4,5,6].addEventListener("click",pressButton);

最佳答案

您可以添加 addEventListener函数到 prototypeNodeList并称之为。干得好:

NodeList.prototype.addEventListener = function(indexes, listener, eventName) {
    for (let index = 0; index < this.length; index++) {
        if (indexes.indexOf(index) >= 0) this[index].addEventListener(eventName, listener);
    }
};
function pressButton() {console.log(this.innerText);}
document.querySelectorAll("button").addEventListener([0, 1, 2, 3, 4, 5, 6], pressButton, "click");
<div class="set">
<button class =  "w drum"> w  </button>
<button class =  "a drum"> a  </button>
<button class =  "s drum"> s  </button>
<button class =  "d drum"> d  </button>
<button class =  "j drum"> j  </button>
<button class =  "k drum"> k  </button>
<button class =  "l drum"> l  </button>
</div>

关于javascript - 我如何使 QuerySelectorAll() 选择所有 html 标签并通过访问 html 标签的索引进行更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64586869/

相关文章:

javascript - 如何在minimatch中匹配一次html或js?

c# - 从 url 获取 HTML

javascript - 如何从 PHP 获取数组并使用数组中的值?

javascript - 如果哈希密码在数据库中,则可以在登录时在输入框中使用该哈希密码

javascript - Angular Accordion 不关闭

jquery - 用下拉列表框导航展开div和背景

java - Apache wicket 按钮 setMarkupId 不起作用

html - 检查了 div 中的输入 radio 启动颜色转换(仅 css)

javascript - 使用 "load more"按钮加载页面

javascript - 过滤 2 个数组,当相等时不返回空