javascript - 循环在 Internet Explorer 中不起作用

标签 javascript internet-explorer

我有一个简单的上下切换代码,可以在除 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/

相关文章:

javascript - 提交表格

javascript - 将 javascript 文件与 html 集成 - 简单示例

javascript - 如何在鼠标悬停时将 CSS 类动态添加到表格行

javascript - 当字符串并排具有相同字符时,按字符拆分()

javascript - 错误: Not Implemented Code 0

javascript - 始终在列表中选择一个 <li>

css - IE 10/11 链接中的背景位置差异

javascript - 使用 --- innerHTML = "...<a href=' http ://. 在 javascript 函数中创建链接。 .'>HttpLink</a>..."

java - 在 Java 中使用 IE/Chrome HTML-Renderer 或使用 JavaScript 存储文件

javascript - 难倒 : IE8 Message: Expected identifier, 字符串或数字行:82 字符:1 代码:0