Attr - 将 DOM 元素的一个属性表示为对象

Attr 接口将 DOM 元素的一个属性表示为对象。在大多数 DOM 方法中,您将直接以字符串形式检索属性(例如 Element.getAttribute())),但是某些函数(例如,Element.getAttributeNode())或迭代会返回 Attr 类型。

警告: 从 Gecko 7.0 (Firefox 7.0 / Thunderbird 7.0 / SeaMonkey 2.4) 开始,许多废弃的属性和方法将警告消息输出到控制台。您应该相应地修改代码。有关完整列表,请参见废弃的属性和方法

属性

name 只读

属性名称。

namespaceURI 只读

一个 DOMString,表示属性名称空间 URI ,如果没有名称空间,则为 null

localName 只读

一个 DOMString,表示属性限定名的本地部分。

prefix 只读

一个 DOMString,表示属性名称空间前缀,如果未指定前缀,则为 null

ownerElement 只读

包含属性的元素。

注意: DOM 级别 4 删除了此属性。假设是,由于您从 Element 获得了一个 Attr 对象,因此您应该已经知道关联的元素。
由于在 Document.evaluate 返回的 Attr 对象等情况下并非如此,因此 DOM Living Standard 重新引入了该属性。
Gecko 从 Gecko 7.0 (Firefox 7.0 / Thunderbird 7.0 / SeaMonkey 2.4) 开始输出废弃提示。在 Gecko 49.0 (Firefox 49.0 / Thunderbird 49.0 / SeaMonkey 2.46) 中删除了此提示。

specified 只读

此属性始终返回 true。最初,如果在源代码或脚本中显式指定了属性,则返回 true true”,如果其值来自文档的 DTD 中定义的默认值,则返回 false

value

属性的值。

注意: DOM 级别 3 在 Node 接口上定义了 namespaceURIlocalNameprefix。在 DOM4 中,它们已移至 Attr 中。
从 Chrome 浏览器 46.0 版和 Firefox 48.0 开始已实现了此更改。

废弃的属性和方法

以下属性是废弃的。当可能的话,会提示相应的替代属性。

attributes

现在,此属性始终返回 NULL

childNodes 已过时 Gecko 14

现在,此属性始终返回一个空的 NodeList

firstChild 已过时 Gecko 14

现在,此属性始终返回 NULL

isId 只读

指示该属性是否为 “ID 属性”。 “ID 属性” 是一种属性,其值在 DOM 文档中应是唯一的。在 HTML DOM 中,“id” 是唯一的 ID 属性,但是 XML 文档可以定义其他属性。属性是否唯一通常由 DTD 或其他架构描述来确定。

lastChild 已过时 Gecko 14

现在,此属性始终返回 NULL

nextSibling

现在,此属性始终返回 NULL

nodeName

使用 Attr.name 代替。

nodeType

现在,此属性始终返回 2(ATTRIBUTE_NODE)。

nodeValue

使用 Attr.value 代替。

ownerDocument

您一开始就不应该使用它,因此您可能不在乎它会消失。

parentNode

现在,此属性始终返回 NULL

previousSibling

现在,此属性始终返回 NULL

schemaTypeInfo 只读

与此属性关联的类型信息。尽管在加载文档或调用 Document.normalizeDocument 之后,可以确保此属性中包含的类型信息正确,但是如果移动了节点,则此属性可能不可靠。

specified

现在,此属性始终返回 true

textContent

使用 Attr.value 代替。

以下方法已经废弃了:

appendChild() 已过时 Gecko 14

改为修改 Attr.value 的值。

cloneNode()

您一开始就不应该使用它,因此您可能不在乎它会消失。

createAttribute()

使用 Element.setAttribute() 代替。

createAttributeNS()

使用 Element.setAttributeNS() 代替。

getAttributeNode()

使用 Element.getAttribute() 代替。

getAttributeNodeNS()

使用 Element.getAttributeNS() 代替。

hasAttributes() 已过时 Gecko 21.0

现在,此方法始终返回 false

hasChildNodes()

现在,此方法始终返回 false

insertBefore()

改为修改 Attr.value 的值。

isSupported()

您一开始就不应该使用它,因此您可能不在乎它会消失。

isEqualNode()

您一开始就不应该使用它,因此您可能不在乎它会消失。

normalize()

您一开始就不应该使用它,因此您可能不在乎它会消失。

removeAttributeNode()

使用 Element.removeAttribute() 代替。

removeChild() 已过时 Gecko 14

改为修改 Attr.value 的值。

replaceChild() 已过时 Gecko 14

改为修改 Attr.value 的值。

setAttributeNode()

使用 Element.setAttribute() 代替。

setAttributeNodeNS()

使用 Element.setAttributeNS() 代替。

规范

规范 状态 备注
DOM
Attr 的定义
现行的标准 加回 ownerElement 属性
DOM4
Attr 的定义
已过时 NodenamespaceURIprefixlocalName 移到此接口,并删除了 ownerElementschemaTypeInfoisId
Document Object Model (DOM) Level 3 Core Specification
Attr 的定义
已过时 初始定义

桌面浏览器兼容性

特性ChromeEdgeFirefoxInternet ExplorerOperaSafari
基础支持 支持1121 支持 支持2 支持
localName464≤18484 未知 支持 支持
namespaceURI464≤18484 未知 支持 支持
prefix464≤18484 未知 支持 支持

移动浏览器兼容性

特性AndroidChrome for AndroidEdge mobileFirefox for AndroidIE mobileOpera AndroidiOS Safari
基础支持 支持1 支持1 未知4 未知 支持2 支持
localName 支持 未知 未知484 未知 支持 支持
namespaceURI 支持 未知 未知484 未知 支持 支持
prefix 支持 未知 未知484 未知 支持 支持

1. 从 Chrome 45 开始,此属性不再继承自 Node。

2. 从 Opera 32 开始,此属性不再继承自 Node。

3. 从 Samsung Internet 5.0 开始,此属性不再继承自 Node。

4. 该 API 以前在 Node API 上可用。