gpt4 book ai didi

Javascript - forEach() 循环在 IE11 上不起作用

转载 作者:行者123 更新时间:2023-12-01 01:04:54 30 4
gpt4 key购买 nike

forEach 循环应该在 IE11 和 diplay 中工作

Object doesn't support property or method 'forEach'.

它应该可以工作,因为它是一个 ECMAScript-5 函数并且 IE11 supports it .

但是,我的代码不起作用:

var alltable = document.querySelectorAll('*[id^="table_"]'); //Select all elements with the id starting by "table_"
alltable.forEach(function(element) {
// Do some code
});

知道为什么吗?

最佳答案

我自己,

forEach() 实际上可以在 IE11 上运行,只是要注意如何调用它。

querySelectorAll()是一个返回NodeList的方法。 在 Internet Explorer 上,foreach() 仅适用于 Array 对象。 (它与 ES6 的 NodeList 一起使用, not supported by IE11)

为了解决这个问题,有些人会建议使用polyfill,它可以很好地工作,但你也可以简单地使用slice.call()方法将NodeList转换为数组:(Explained here)

var alltable = document.querySelectorAll('*[id^="table_"]'); //Select all elements with the id starting by "table_"
var alltableArray= Array.prototype.slice.call(alltable);
alltableArray.forEach(function(element) {
// Do some code
});

或者:

var alltable = Array.prototype.slice.call(document.querySelectorAll('*[id^="table_"]')); //Select all elements with the id starting by "table_"
alltable.forEach(function(element) {
// Do some code
});

总结一下:确保您在 Array 对象而不是 NodeList 上使用它。

希望可以帮助别人。

关于Javascript - forEach() 循环在 IE11 上不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55741747/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com