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
接口上定义了namespaceURI
,localName
和prefix
。在 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 的定义 |
已过时 | 将 Node 的 namespaceURI ,prefix 和 localName 移到此接口,并删除了 ownerElement ,schemaTypeInfo 和 isId 。 |
Document Object Model (DOM) Level 3 Core Specification Attr 的定义 |
已过时 | 初始定义 |
桌面浏览器兼容性
特性 | Chrome | Edge | Firefox | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
基础支持 | 支持1 | 12 | 1 | 支持 | 支持2 | 支持 |
localName | 464 | ≤18 | 484 | 未知 | 支持 | 支持 |
namespaceURI | 464 | ≤18 | 484 | 未知 | 支持 | 支持 |
prefix | 464 | ≤18 | 484 | 未知 | 支持 | 支持 |
移动浏览器兼容性
特性 | Android | Chrome for Android | Edge mobile | Firefox for Android | IE mobile | Opera Android | iOS 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 上可用。