HTMLCollection - 元素的通用集合

HTMLCollection 接口表示元素(按照文档中的顺序)的通用集合(类似于参数的类似数组的对象)并提供了用于从列表中进行操作的方法和属性。

注意: 由于历史原因,该接口被称为 HTMLCollection (在现代 DOM 之前,实现该接口的集合只能将 HTML 元素作为它们的子项)。

HTML DOM 中的 HTMLCollection 是实时更新的;当其所包含的文档结构发生改变时,它会自动更新。

方法

HTMLCollection.length 只读

返回集合中的子元素数量。

方法

HTMLCollection.item()

根据给定的索引(从 0 开始),返回具体的节点。如果 index 超出范围,则返回 null

HTMLCollection.namedItem()

返回其 ID 或(作为备用)名称与由 name 指定的字符串匹配的特定节点。只有在 HTML 中,引用的元素支持 name 属性的情况下,才按照名称进行匹配。如果不存在给定名称的节点,则返回 null

在 JavaScript 中使用

HTMLCollection 也通过名称和索引直接将其成员公开为属性。 HTML ID 可能包含 :. 作为有效字符,这将需要使用括号符号来进行属性访问。目前 HTMLCollections 不能识别纯数字 ID,这会导致与数组方式的访问发生冲突,尽管 HTML5 确实允许这样访问。

例如,假设文档中有一个 <form> 元素,其 id"myForm"

var elem1, elem2;

// document.forms 是一个 HTMLCollection

elem1 = document.forms[0];
elem2 = document.forms.item(0);

alert(elem1 === elem2); // 显示:"true"

elem1 = document.forms.myForm;
elem2 = document.forms.namedItem("myForm");

alert(elem1 === elem2); // 显示:"true"

elem1 = document.forms["named.item.with.periods"];

浏览器兼容性

当有多个元素匹配用作索引的字符串(或 namedItem 的参数)时,不同浏览器的行为会有所不同。 Firefox 8 的行为与 DOM 2 和 DOM 4 中指定的一样,返回第一个匹配元素。在这种情况下,WebKit 浏览器和 Internet Explorer 返回另一个 HTMLCollection ,Opera 返回所有匹配元素的 NodeList

规范

规范 状态 备注
DOM
HTMLCollection 的定义
现行的标准 -
Document Object Model (DOM) Level 2 HTML Specification
HTMLCollection 的定义
已过时 -
Document Object Model (DOM) Level 1 Specification
HTMLCollection 的定义
已过时 初始定义。

相关链接