相关疑难解决方法(0)

forSeach querySelectorAll在最近的Microsoft浏览器中不起作用

我正在制作一个关于产品(颜色等)的选择的脚本,它适用于除Internet Explorer(11)和Edge之外的所有浏览器.

我将每个参数的选择放在一个数组中,并使用该array.forEach()方法将一个函数应用于它们.

颜色参数的示例:

var color_btns = document.querySelectorAll('#color > p');
color_btns.forEach(function(color) {
    color.onclick = function () {
        color_btns.forEach(function(element) {
            if (element.classList.contains('selected')) {
                element.classList.remove('selected');
            }
        });
        color.classList.add('selected');
        document.querySelector('#f_color').value = color.dataset.id;
    };
});
Run Code Online (Sandbox Code Playgroud)

我在IEEdge的控制台中得到以下输出:

对象不支持属性或方法'forEach'

在搜索了这个问题后,我了解到IE 9及更新版本支持此功能.我试图自己定义功能但没有成功.当我记录该函数时,它被定义为一个函数([native code]内部带有" ").

我用一个替换.forEachfor它,它工作得很好,

  • 但是我怎么能让它发挥作用呢?
  • 是否有forEach()针对Internet ExplorerEdge的特定用法?

我以为它是Array.prototype.forEach最新版本的IE(和所有版本的Edge)都有它......?

javascript arrays foreach internet-explorer microsoft-edge

7
推荐指数
2
解决办法
4726
查看次数