Web 开发人员版 — 最后更新于 2024年9月12日
反映的构建块如下
一个 反射目标 是一个元素或 ElementInternals
对象。它通常从上下文中明确,并且通常与反射 IDL 属性的接口相同。当它是一个 ElementInternals
对象时,它始终与该接口相同。
一个 反射 IDL 属性 是一个属性接口成员。
一个 反射内容属性名称 是一个字符串。当反射目标是元素时,它表示内容属性的本地名称,其命名空间为 null。当反射目标是 ElementInternals
对象时,它表示反射目标的目标元素的内部内容属性映射的键。
一个反射 IDL 属性可以被定义为反射一个反射内容属性名称,该名称属于一个反射目标。一般来说,这意味着 IDL 属性 getter 返回内容属性的当前值,而 setter 将内容属性的值更改为给定值。
如果反射目标是一个元素,那么反射 IDL 属性还可以声明支持 ElementInternals
。这意味着 ElementInternals
接口也具有一个反射 IDL 属性,它具有相同的标识符,并且该反射 IDL 属性反射相同的反射内容属性名称。
fooBar
IDL 属性必须反射foobar
内容属性并支持 ElementInternals
。
HTMLFormControlsCollection
和 HTMLOptionsCollection
接口是从HTMLCollection
接口派生的集合。HTMLAllCollection
接口是一个集合,但不是这样派生的。
HTMLAllCollection
接口HTMLAllCollection
接口用于旧版 document.all
属性。它的操作方式类似于HTMLCollection
;主要区别在于它允许各种不同的(滥用)方法最终返回某些内容,并且可以将其作为函数调用作为属性访问的替代方案。
所有 HTMLAllCollection
对象都根植于一个 Document
并且具有一个匹配所有元素的过滤器,因此 HTMLAllCollection
对象的集合所表示的元素由根 Document
的所有后代元素组成。
实现 HTMLAllCollection
接口的对象具有几种异常行为,因为它们具有一个[[IsHTMLDDA]] 内部槽
JavaScript 中的ToBoolean 抽象操作在给定实现 HTMLAllCollection
接口的对象时返回 false。
当给定实现 HTMLAllCollection
接口的对象时,IsLooselyEqual 抽象操作在与 undefined
和 null
值进行比较时返回 true。(使用IsStrictlyEqual 抽象操作的比较以及与其他值(如字符串或对象)的 IsLooselyEqual 比较不受影响。)
JavaScript 中的typeof
运算符在应用于实现 HTMLAllCollection
接口的对象时返回字符串 "undefined"
。
这些特殊行为的动机是希望与两类旧版内容兼容:一类是使用 document.all
的存在来检测旧版用户代理,另一类只支持这些旧版用户代理并在不首先测试其存在的情况下使用 document.all
对象。[JAVASCRIPT]
HTMLFormControlsCollection
接口HTMLFormControlsCollection
接口用于表单
元素中列出元素的集合的集合。
collection.length
返回 collection 中的元素数量。
element = collection.item(index)
element = collection[index]
返回 collection 中索引 index 处的项目。这些项目按树状顺序排序。
element = collection.namedItem(name)
radioNodeList = collection.namedItem(name)
element = collection[name]
radioNodeList = collection[name]
从 collection 中返回具有ID 或name
name 的项目。
如果有多个匹配项,则返回包含所有这些元素的 RadioNodeList
对象。
radioNodeList.value
所有当前引擎都支持。
返回 radioNodeList 表示的第一个选中的单选按钮的值。
radioNodeList.value = value
选中 radioNodeList 表示的第一个具有值 value 的单选按钮。
HTMLOptionsCollection
接口所有当前引擎都支持。
HTMLOptionsCollection
接口用于option
元素的集合。它始终根植于select
元素,并具有操作该元素的后代的属性和方法。
collection.length
返回 collection 中的元素数量。
collection.length = value
当设置为小于现有长度的数字时,会截断与 collection 对应的容器中的option
元素数量。
当设置为大于现有长度的数字时,如果该数字小于或等于 100000,则会向与 collection 对应的容器中添加新的空白option
元素。
element = collection.item(index)
element = collection[index]
返回 collection 中索引 index 处的项目。这些项目按树状顺序排序。
collection[index] = element
当 index 大于 collection 中的项目数量时,会在相应的容器中添加新的空白option
元素。
当设置为 null 时,会从 collection 中删除索引 index 处的项目。
当设置为option
元素时,会在 collection 中的索引 index 处添加或替换它。
element = collection.namedItem(name)
element = collection[name]
从collection中返回具有ID或name
属性值为name的项目。
如果有多个匹配的项目,则返回第一个。
collection.add(element[, before])
在由before指定的节点之前插入element。
before参数可以是一个数字,在这种情况下,element将在具有该数字的项目之前插入;也可以是collection中的一个元素,在这种情况下,element将在该元素之前插入。
如果before被省略、为null或超出范围的数字,则element将添加到列表的末尾。
如果element是将其插入到的元素的祖先,则抛出一个"HierarchyRequestError
" DOMException
。
collection.remove(index)
从collection中删除索引为index的项目。
collection.selectedIndex
返回第一个选中项目的索引(如果有),如果没有选中项目则返回−1。
collection.selectedIndex = index
将选择更改为collection中索引为index的option
元素。
DOMStringList
接口所有当前引擎都支持。
DOMStringList
接口是一种过时的、不流行的表示字符串列表的方式。
strings.length
所有当前引擎都支持。
返回strings中字符串的数量。
strings[index]
strings.item(index)
所有当前引擎都支持。
返回strings中索引为index的字符串。
strings.contains(string)
所有当前引擎都支持。
如果strings包含string,则返回true,否则返回false。