HTMLCollection数组?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (49)

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

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对象。

提问于
用户回答回答于

不,这是一个HTMLCollection,而不是一个Array

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

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

用户回答回答于

扫码关注云+社区