Pra*_*wal 13 javascript foreach internet-explorer
我最近一直在研究JavaScript,一切都很好,直到我在IE11中打开我的页面.按照Mozilla的网站 .forEach,从IE9支持.
这是我得到的错误.
SCRIPT438:对象不支持属性或方法'forEach'
这是代码.
var link1 = document.querySelectorAll("nav a");
var textbox = document.getElementById("OutputWindow");
link1.forEach(function (element) {
textbox.innerHTML += "<br/>" + element + "\n";
element.onclick = function () {
alert("Hello!");
console.log("hello!");
confirm("Hello!");
};
});
Run Code Online (Sandbox Code Playgroud)
我尝试了polyfill,但令我高兴的Array是,forEach在IE11中有一个.
然后我出错了?
PS:这在Chrome中运行良好.
Pra*_*wal 29
终于神秘解决了.
显然,IE9及以上版本支持Array.forEach但不支持NodeList,querySelector返回.我试图Array.from()无济于事,因为它需要ES6或使用ES6-shim.
我所要做的就是从转换nodeList到Array,我做到了.
Array.prototype.slice.call(document.querySelectorAll("nav a"), 0);
Run Code Online (Sandbox Code Playgroud)
如问题所示在Javascript中,将NodeList转换为数组的最佳方法是什么
小智 6
if (typeof Array.prototype.forEach != 'function') {
Array.prototype.forEach = function (callback) {
for (var i = 0; i < this.length; i++) {
callback.apply(this, [this[i], i, this]);
}
};
}
if (window.NodeList && !NodeList.prototype.forEach) {
NodeList.prototype.forEach = Array.prototype.forEach;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11470 次 |
| 最近记录: |