這是Ive第二次遇到這個&這次決定提出一個問題,而不是尋找替代解決方案。在DOM元素數組上調用內置函數
場景: 我們從document.getElementsByClassName
獲取元素列表。返回的列表是一個數組。爲什麼我不能在這個返回的數組上使用像map, find, filter
這樣的內置數組函數?
https://jsfiddle.net/xbka5pt2/
<div class="classy"></div>
<div class="classy"></div>
<div class="classy"></div>
<div class="classy"></div>
<div class="classy"></div>
的Javascript:
let list = document.getElementsByClassName("classy");
console.log(list);
// the following returns a 'typeError':
// "list.map is not a function"
list.map(function(ele){
console.log("ele is", ele);
});
我得到的錯誤:TypeError: list.map is not a function
當我嘗試&使用地圖功能列表陣列上。謝謝。
因爲它不是一個數組,它是一個活[的HTMLCollection](https://developer.mozilla.org/de/文檔/網絡/ API /的HTMLCollection)。 – DavidDomain
感謝大衛,我該如何將它轉換爲數組? – Kayote
由於您使用的是ES6,您可以簡單地調用'Array.from(list)'。 – DavidDomain