这是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