HTMLAllCollection

已弃用:此功能不再推荐。尽管某些浏览器可能仍然支持它,但它可能已从相关的 Web 标准中删除,可能正在被删除,或者可能仅出于兼容性目的而保留。避免使用它,并尽可能更新现有代码;请参阅此页面底部的兼容性表格,以指导您的决策。请注意,此功能可能随时停止工作。

HTMLAllCollection 接口表示文档中所有元素的集合,可以通过索引(如数组)和元素的id进行访问。它由document.all 属性返回。

HTMLAllCollection 的形状与HTMLCollection 非常相似,但存在许多细微的行为差异——例如,HTMLAllCollection 可以作为函数调用,并且它的 item() 方法可以使用表示元素 idname 属性的字符串进行调用。

实例属性

HTMLAllCollection.length 只读

返回集合中项目的数量。

实例方法

HTMLAllCollection.item()

返回位于集合中指定偏移量的元素,或者其 idname 属性值为指定值的元素。如果未找到任何元素,则返回 null

HTMLAllCollection.namedItem()

返回集合中第一个元素,其idname 属性与给定的字符串名称匹配,如果没有任何元素匹配,则返回 null

在 JavaScript 中的使用

索引访问

除了上述方法之外,还可以通过整数索引和字符串属性名称访问 HTMLAllCollection 中的元素。HTML id 属性可以包含 :. 作为有效字符,这需要使用括号表示法进行属性访问。collection[i] 等效于 collection.item(i),其中 i 可以是整数、包含整数的字符串或表示 id 的字符串。

作为函数调用

HTMLAllCollection 对象是可调用的。当它不带任何参数或使用 undefined 调用时,它会返回 null。否则,它会返回与item() 方法在给定相同参数时相同的值。

特殊类型转换行为

出于历史原因,document.all 是一个对象,它在以下方面表现得像 undefined

这些特殊行为确保了以下代码

js
if (document.all) {
  // Assume that we are in IE; provide special logic
}
// Assume that we are in a modern browser

即使在出于兼容性原因而实现 document.all 的浏览器中运行代码,也能够继续提供现代行为。

但是,在所有其他上下文中,document.all 仍然是一个对象。例如

规范

规范
HTML 标准
# the-htmlallcollection-interface

浏览器兼容性

BCD 表格仅在启用了 JavaScript 的浏览器中加载。

另请参阅