我有一个简单的上下切换代码,可以在除 IE 之外的其他浏览器上运行,我想是因为我使用的是 forEach
,但我不确定这是否是原因。如何解决这个问题?
const dropWrapper = document.querySelectorAll(".dropdown");
dropWrapper.forEach(function (el) {
let drop = el.querySelector(".dropdown-company-trust");
let dropContainer = el.querySelector("#myDropdown");
let arrow = el.querySelector(".jsArrow");
drop.addEventListener("click", function () {
dropContainer.classList.toggle("show");
arrow.classList.toggle("jsArrowUp");
})
})
最佳答案
forEach
在 Internet Explorer 中受支持,但不支持迭代 NodelList
:
NodeList.forEach(callback[, thisArg]);
您可以找到浏览器兼容性here
要让 foreEach
在 Internet Explorer 中工作,请使用 polyfill。它将 NodeList.foreEach 设置为等于 Array.foreEach。
if (window.NodeList && !NodeList.prototype.forEach) {
NodeList.prototype.forEach = Array.prototype.forEach;
}
var dropWrapper = document.querySelectorAll(".dropdown");
dropWrapper.forEach(function() {
// ...
});
关于javascript - 循环在 Internet Explorer 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57660563/