首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >HTMLCollection是一个数组吗?

HTMLCollection是一个数组吗?
EN

Stack Overflow用户
提问于 2012-10-07 23:32:35
回答 2查看 18.6K关注 0票数 22

我知道HTMLCollection实际上不是一个数组,否则它会被定义为一个数组。我使用一个帮助函数,我调用isArray()来检测一个对象是否是一个数组。我到处都在使用这个小帮助器,在检查htmlCollection时,我一直在运行返回false的问题。

代码语言:javascript
复制
var isArray: function(obj) {
    var type = Function.prototype.call.bind( Object.prototype.toString );
    return type(obj) === '[object Array]' || type(obj) === '[object HTMLCollection]';
}

在这个帮助器函数中检查htmlCollection类型并假设它与数组是一样的是错误的吗?它有什么不同之处?而不是其html元素,而不是javascript对象。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-10-07 23:33:20

不,这是HTMLCollection,不是Array

它具有类似数组的特征(如数字属性)和.length属性,但它不是从Array.prototype继承的。因此,它没有标准的Array方法,因此应该被看作是不同的。

另一个重要的区别是,HTMLCollection是一个“实时”集合,这意味着它会随着DOM的更新而更新。如果从DOM中删除它的一个节点,它将自动从HTMLCollection中删除。

票数 28
EN

Stack Overflow用户

发布于 2013-04-25 06:07:31

如果你正在考虑数组转换,请参考这篇文章:

Most efficient way to convert an HTMLCollection to an Array

他们讨论了一些方法,所选答案中的解决方案在我经历过的情况下也有效。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12770147

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档