首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Javascript ()循环不工作于IE11

Javascript ()循环不工作于IE11
EN

Stack Overflow用户
提问于 2019-04-18 08:12:16
回答 1查看 6K关注 0票数 1

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

对象不支持属性或方法“forEach”。

它应该可以工作,因为它是一个ECMAScript-5函数和IE11支持它

但是,这里的代码不起作用:

代码语言:javascript
运行
复制
var alltable = document.querySelectorAll('*[id^="table_"]'); //Select all elements with the id starting by "table_"
    alltable.forEach(function(element) {
                // Do some code
                });

知道为什么吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-18 08:12:16

好吧我自己

forEach()实际上正在开发IE11,只是在如何称呼它时要小心。

querySelectorAll()是一个返回NodeList的方法。在Internet上,foreach() 只对数组对象工作。(它与NodeList和ES6,(不受IE11支持)一起工作。

要解决这个问题,一些人会建议使用一个多边形填充,它可以工作得很好,但是您也可以简单地使用slice.call()方法将您的slice.call()转换成一个数组:(在此解释)

代码语言:javascript
运行
复制
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
                });

或者:

代码语言:javascript
运行
复制
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
                });

总之:一定要将它用于数组对象,而不是NodeList.

希望能帮上忙。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55741747

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档