javascript - addEventListener 是否适用于按标签名称获取元素?
问题描述
我正在尝试更改 h1 的颜色,但是当我使用 getElementsByTagName 和 addEventListener 时,它没有执行,但它可以使用 getElementById 为什么?
document.getElementsByTagName("site-title-heading").addEventListener("click",abc);
function abc(){
document.getElementsByTagName("site-title-heading").style.color="yellow"
}
document.getElementById("site-title-heading").addEventListener("click",abc);
function abc(){
document.getElementById("site-title-heading").style.color="yellow"
}
解决方案
每当事情不起作用时,将它们记录到控制台。
注意:
addEventListener
方法存在于 HTML 元素上。
getElementsByTagName
返回 HTML 元素的 NodeList(类似于数组的数据结构),而getElementById
返回一个 HTML 元素。
因此,您可以做的是遍历所有元素并将侦听器分配给每个元素。
const elements = document.getElementsByTagName("site-title-heading");
for (const el of Array.from(elements)) {
el.addEventListener("click",abc);
}
推荐阅读
- java - 我需要关于我的抽象类是否应该是接口的建议(反之亦然)
- google-compute-engine - GCP 中是否有任何工具可以修补计算实例?
- c# - 在 .NET4.5 上安装 EntityFramework5.0.0 后错误:“System.Data.Entity.Internal.AppConfig”的类型初始化程序在运行时引发异常
- spring - 使用 i18n 用点而不是逗号格式化货币
- php - 如何在 laravel 中处理基于条件的验证?
- android - Wifi Direct:一对多
- ios - 如何覆盖目标平台中不可用但在 Base SDK 中可用的方法
- php - Shopware:如何向现有的第三方插件添加新字段
- epplus - 无法在 EPPLUS 中检索实际公式结果
- html - 引导 div 未与画布对齐