問題描述:通過document.getElementsByClassName獲取DOM對象,並對返回值通過forEach遍歷,報錯:Uncaught TypeError: undefined is not a function
代碼:
var arr = document.getElementsByClassName('myClass');
arr.forEach(function(item) {
console.log(item);
});
因為 document.getElementsByClassName 返回的是一個 HTMLCollection, 不是一個數組。
解決辦法:將獲得的HTMLCollection轉換成數組,有如下幾種方法。
[].forEach.call(document.getElementsByClassName('myClass'), function(v) {
console.log(v);
})
Array.from(document.getElementsByClassName('myClass')).forEach(v=>{
console.log(v)
});
[...document.getElementsByClassName('myClass'))].forEach(v=>{
console.log(v)
});
