作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试为每个类名为 director__card--iconBox
的元素分配一个点击事件.我选择这些元素的方式是 getElementsByClassName
.编写当前代码后,我正在测试函数以应用 background-color
其父 div 为红色。最终目标是能够翻转 div 并显示稍后将出现的 div 的背面。
const toggleButton = document.getElementsByClassName("director__card--iconBox");
toggleButton.forEach((el) =>
el.addEventListener("click", (event) => {
const card = event.target.parentElement.querySelector(".director__card");
card.classList.toggle("open");
})
);
我正在取回一个 HTMLCollection。我的想法是这不会因为 HTMLCollection 而工作?我试过 querySelectorAll 带回一个节点列表,但 NodeList 返回空..
最佳答案
HTMLCollection是一个类数组对象,但它没有 forEach
方法。
您可以通过多种方式对其进行迭代;
例如
从中创建一个数组;
Array.from(toggleButton).forEach((el) =>
el.addEventListener("click", (event) => {
const card = event.target.parentElement.querySelector(".director__card");
card.classList.toggle("open");
})
);
使用
for..of
for (let item of toggleButton) {
item.forEach((el) =>
el.addEventListener("click", (event) => {
const card = event.target.parentElement.querySelector(".director__card");
card.classList.toggle("open");
});
);
}
或者,只需
for
环形。
for (let i = 0, len = toggleButton.length; i < len; i++) {
toggleButton[i].forEach((el) =>
el.addEventListener("click", (event) => {
const card = event.target.parentElement.querySelector(".director__card");
card.classList.toggle("open");
});
);
}
关于javascript - 无法使用 forEach 循环遍历 HTMLCollection,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68291285/
我是一名优秀的程序员,十分优秀!