HTMLAllCollection

已弃用:此特性不再推荐。虽然某些浏览器可能仍然支持它,但它可能已经从相关的网络标准中删除,可能正在删除过程中,或者可能仅为兼容性目的而保留。请避免使用它,如果可能,请更新现有代码;请参阅本页底部的兼容性表格以指导您的决策。请注意,此特性可能随时停止工作。

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

  • 它与 undefinednull 松散相等
  • 在布尔值上下文中,它是 假值
  • 它的 typeof"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

浏览器兼容性

另见