javascript - 有没有办法向具有特定类的所有 html 元素添加函数
问题描述
我想选择具有特定类的所有 html 元素并使用 onClick 事件调用函数
HTML 代码
<div class="card shadow boxToggle"></div>
<div class="card shadow boxToggle"></div>
<div class="card shadow boxToggle"></div>
<div class="card shadow boxToggle"></div>
当我单击 anydiv.boxToggle
时,我想向它添加一个类。
我试过的
1.方法
<div class="card shadow boxToggle" onClick="a_function()"></div>
<div class="card shadow boxToggle" onClick="a_function()"></div>
2.方法
const box = document.querySelectorAll('.boxToggle')
box.forEach((b) => {
b.addEventListener("click", toggle)
})
function toggle(event) {
console.log(event)
event.target.classList.toggle("boxChange");
}
在不使用 jQuery 的情况下,有没有其他更短更好的方法来解决这个问题?
解决方案
是的,代表团
const toggle = event => {
const tgt = event.target.closest("div");
if (tgt.classList.contains("card")) {
console.log(tgt.textContent)
tgt.classList.toggle("boxChange")
}
};
document.getElementById("container").addEventListener("click", toggle);
<div id="container">
<div class="card shadow boxToggle"><h1>1</h1><p>Click me too</p></div>
<div class="card shadow boxToggle">2</div>
<div class="card shadow boxToggle">3</div>
<div class="card shadow boxToggle">4</div>
</div>
删除(但我建议在数据属性中设置一个标志或只是一个布尔值)
document.getElementById("container").removeEventListener("click", toggle)
推荐阅读
- javascript - 异常没有抛出我的字符串——它抛出的是文字异常而不是我的抛出
- c - 以下程序的时间复杂度是多少?
- git - 如何获取使用守望触发器更改文件的用户?
- angular - 如何在Angular中对对象数组进行降序排序
- javascript - 反应 setState 嵌套对象回调
- c - 在 C 中转换为 int 的字符返回负值
- kubernetes - 如何从 PyTorch 作业创建 Kubeflow 组件?
- c++ - 引用指针 (int * const & arg)
- python - 使用 Python Pandas 数据框的 if/else
- python - 使用硒从两个不同深度刮取物品时遇到问题