首页 > web前端 > js教程 > 如何向具有相同类的多个元素添加点击事件监听器?

如何向具有相同类的多个元素添加点击事件监听器?

Mary-Kate Olsen
发布: 2024-11-09 16:30:02
原创
679 人浏览过

How to Add Click Event Listeners to Multiple Elements with the Same Class?

向具有相同类的元素添加点击事件侦听器

在这种情况下,您有一个用于删除 ID 的列表视图,并且想要添加对所有具有“删除”类的元素的确认警报。但是,您遇到了一个问题,似乎只有该类的第一个元素才能接收侦听器。

解决方案

要解决此问题,您需要使用 querySelectorAll而不是查询选择器。 querySelectorAll 返回一个包含指定类的所有元素的 NodeList:

var deleteLink = document.querySelectorAll('.delete');
登录后复制

现在,您可以迭代 NodeList 并向每个元素添加事件监听器:

for (var i = 0; i < deleteLink.length; i++) {
    deleteLink[i].addEventListener('click', function(event) {
        if (!confirm("sure u want to delete " + this.title)) {
            event.preventDefault();
        }
    });
}
登录后复制

此外,仅阻止如果用户未确认删除,则执行默认操作。这确保只有在用户明确选择继续时才会执行删除。

ES6 增强

使用 ES6,您可以使用 Array.prototype.forEach 简化循环:

Array.from(deleteLinks).forEach(link => {
    link.addEventListener('click', event => {
        if (!confirm(`sure u want to delete ${this.title}`)) {
            event.preventDefault();
        }
    });
});
登录后复制

此版本使用模板字符串(ES2015 中引入)以获得更清晰的语法。

以上是如何向具有相同类的多个元素添加点击事件监听器?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板