我想迭代一些DOM元素,我正在这样做:
document.getElementsByClassName( "myclass" ).forEach( function(element, index, array) {
//do stuff
});
但是我遇到了一个错误:
document.getElementsByClassName("myclass").forEach 不是一个函数
我正在使用 Firefox 3,所以我知道 getElementsByClassName
和 Array.forEach
都存在。下面的代码可以正常工作:
[2, 5, 9].forEach( function(element, index, array) {
//do stuff
});
getElementsByClassName
的结果是否为数组?如果不是,那它是什么?
[].forEach.call(elsArray, function () {...})
。 - Kijewskidocument.getElementsByClassName()
应该返回一个HTMLCollection
(与 NodeList 非常相似但不是同一种类型)。感谢指出错误。 - Tim DownHTMLCollection
提示。现在我终于可以在我的代码中使用HTMLCollection.prototype.forEach = Array.prototype.forEach;
了。 - Maksim Vi.