javascript - 如何在所有具有特定类的 dom 元素上添加 EventListener?

标签 javascript jquery typescript onclick addeventlistener

我的 DOM 中有一些包含 class="foo"的跨度,并且所有跨度都是动态创建的。

使用 TypeScript,我想在创建它们后为其添加一个 onClick 事件。

我有这样的东西:

var foos = document.body.querySelectorAll(".foo");
foos.forEach(function (item) {            
    item.addEventListener("click", () => { 
        console.log(item); 
    });
});

但是我不能在 NodeListOf 上执行 forEach 操作。

foos = Array.from(foos) 不起作用,因为:类型“ArrayConstructor”上不存在“from”。

最佳答案

为此使用简单的 for 循环。您可以获取 foos 数组中每个索引的元素并为其分配单击事件。这是因为 querySelectorAll 返回一个 NodeList,它像数组一样索引,但不是数组,因此您无法调用它的数组方法,因为它不是真正的数组.

var foos = document.body.querySelectorAll(".foo"));
for(var i=0; i<foos.length; i++){
    foos[i].addEventListener("click", () => { 
        console.log(item); 
    });
});

关于javascript - 如何在所有具有特定类的 dom 元素上添加 EventListener?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50254616/

相关文章:

javascript - 从 javascript 和 php 提交表单

jquery - 由于生成器 ko 的 jQuery 错误,Gulp 失败了默认任务

Angular 2 : Check if input in reactive form is empty, 如果没有给出输入则输入默认值

node.js - Mongodb反向匹配API端点路径

closures - 将参数传递给javascript中的闭包函数

javascript - 在 Ajax 加载后使 jQuery UI 工具提示重新定位

javascript - jQuery .text() 返回空字符串和 .html() 使用任何源返回 "undefined"

javascript - 在后端代码中添加 JSON 中的额外字段

android - Galaxy S7 以相反的顺序键入文本

angular - 在垫日历中突出显示某些日期