javascript - 如何在所有具有特定类的 dom 元素上添加 EventListener?
问题描述
我的 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
返回的 aNodeList
像数组一样被索引,但不是数组,因此您不能在其上调用数组方法,因为它不是真正的数组。
var foos = document.body.querySelectorAll(".foo"));
for(var i=0; i<foos.length; i++){
foos[i].addEventListener("click", () => {
console.log(item);
});
});
推荐阅读
- json - Using multiple anyOf inside oneOf
- spring-boot - 添加新的视图解析器
- github - 如何查询github上的高级问题处理(里程碑和项目的使用)?
- javascript - *ngif 第一次点击后不工作。角 6
- nodes - 如果两个 geth 客户端(在两台不同的机器上)在主网中使用相同的 nodekey 文件(节点 ID)运行会发生什么?
- yii2 - Yii2-如何通过重定向传递模型ID
- cassandra - Cassandra 简单的主键查询
- javascript - 从日期属性中具有最新值的数组中获取对象?
- android-ndk - 编译器(clang,android ndk r18)找不到 stl_algobase.h
- javascript - 直接在号码上调用方法