JavaScript 为多元素添加监听事件修改元素或属性
•
2024-02-20
•
文章类别:
HTML & CSS
JavaScript
•
阅读量:307
本文介绍使用原生JavaScript (Vanilla JS)为多个元素添加事件监听器,添加或修改元素(element)或属性(class, id, rel, type等),为触发事件的元素添加和修改属性和元素。
Javascript为多元素添加事件监听器的步骤:
- 获取所有的元素
- 使用循环一次性添加事件监听器
获取元素
要为多个元素添加事件监听器,如要获取多个元素。因此不能使用 document.getElementById
,它只能使用 id
获取一个元素。
获取多个元素要使用 document.querySelectorAll()
方法.
语法为:
els = document.querySelectorAll(selectors);
解释:
selectors
可以是元素选择器,如h2; 类选择器,如.h2。
示例:
els = document.querySelectorAll(".myclass");
// 获取包含类 .myclass 的所有元素,返回值为数组
使用循环为元素添加事件
调用 document.querySelectorAll
函数返回值是一个数组。数组包含一个 forEach()
函数,用来迭代数组中包含的元素。
方法使用解释
document.querySelectorAll(".myclass").forEach( item => {
item.addEventListener("click", event => {
// handle click
// 引用当前元素,箭头函数不能使用 this, 使用 event.currentTarget 引用当前对象
})
})
使用示例
使用事件监听器为触发事件的元素的父元素添加类,再次触发时删除类。
document.querySelectorAll('.myclass') .forEach((item) => {
item.addEventListener('click', event => {
event.currentTarget.parentElement.classList.toggle("active")
})
});
示例解释:
event.currentTarget
是对触发事件的当前元素的引用。
parentElement
是当前元素的父元素。
classList
元素的类列表。
toggle()
触发时添加类,再次触发时删除类。
0 评论