Attr
该类型使用对象来表示一个 DOM 元素的属性。在大多数 DOM 方法中,你可能会直接通过字符串的方式获取属性值(例如Element.getAttribute()
),但是一些函数(例如Element.getAttributeNode()
)或通过迭代器访问时则返回Attr
类型。
属性
name
(en-US) 只读- 该属性的名称
namespaceURI
只读-
表示该属性的命名空间 URI
DOMString
,如果该元素不在命名空间中,则返回 null。 localName
只读-
表示该属性的命名空间限定的本地名称
DOMString
。 prefix
只读- 表示该属性的命名空间前缀
DOMString
,如果没有前缀指定则返回 null。 ownerElement
(en-US) 只读-
该属性所附属的元素节点。
注意: DOM Level 4 移除了这个方法。由于当你从
Element
中获得Attr
对象时,你应已知相关的元素。
在某些场景下并一定能够得到相关的元素,比如通过Document.evaluate
返回的 Attr 对象,最新的 DOM 草案再次引入该属性。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
(en-US) 只读- 该属性将返回
真
。如果这个属性你在源代码或者在脚本中明确指定的话,它总是返回真。否则它是由文档的DTD默认定义的,将总是返回假
。 value
(en-US)- 属性的值
注意: DOM Level 3 定义namespaceURI
, localName
和prefix
为Node
接口。在 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 属性,也是唯一一个 ID 属性;但是在 XML 文档中可以定义其他 ID 属性。一个属性是否是唯一的,通常由DTD (en-US)或其他文档模式描述文件决定。
lastChild
当前该属性总是返回 NULL
nextSibling
当前该属性总是返回 NULL
nodeName
- 使用
Attr.name
(en-US)来代替 nodeType
当前该属性总是返回
2,表示ATTRIBUTE_NODE
nodeValue
- 使用
Attr.value
(en-US)来代替 ownerDocument
- 这个属性本不应当在这里被使用,所以应该无须担心其演变
parentNode
当前该属性总是返回 NULL
previousSibling
当前该属性总是返回 NULL
schemaTypeInfo
只读- 当前属性的类型信息。然而当加载完文档完或调用
Document.normalizeDocument
后,这个被认定为绝对正确的包含在节点内的类型信息,会因为节点的移动而变得不可信。 specified
当前该属性总是返回 true
textContent
- 使用
Attr.value
(en-US)来代替
这些方法已经被废弃:
appendChild()
已废弃 Gecko 14- 通过编辑
Attr.value
(en-US)属性来实现相同的效果 cloneNode()
- 这个方法本不应当在这里被使用,所以无须担心其演变
createAttribute()
- 使用
Element.setAttribute()
来代替 createAttributeNS()
- 使用
Element.setAttributeNS()
来代替 getAttributeNode()
- 使用
Element.getAttribute()
来代替 getAttributeNodeNS()
- 使用
Element.getAttributeNS()
(en-US)来代替 hasAttributes()
已废弃 Gecko 21.0当前该方法总是返回
false.hasChildNodes()
当前该方法总是返回
false.insertBefore()
- 通过编辑
Attr.value
(en-US)来实现相同效果 isSupported()
- 这个方法本不应当被在这里使用,所以无须担心其演变
isEqualNode()
- 这个方法本不应当被在这里使用,所以无须担心其演变
normalize()
- 这个方法本不应当被在这里使用,所以无须担心其演变
removeAttributeNode()
- 使用
Element.removeAttribute()
来代替 removeChild()
已废弃 Gecko 14- 通过编辑
Attr.value
(en-US)来实现相同效果 replaceChild()
已废弃 Gecko 14- 通过编辑
Attr.value
(en-US)来实现相同效果 setAttributeNode()
- 使用
Element.setAttribute()
来代替 setAttributeNodeNS()
- 使用
Element.setAttributeNS()
来代替
规格
规格 | 状态 | 注释 |
---|---|---|
DOM Attr |
Living Standard | 加回 ownerElement 属性 |
DOM4 Attr |
Obsolete | 将 namespaceURI、prefix 和 localName 从 Node 移至本 API,且删除 ownerElement、 schemaTypeInfo 和 isId . |
Document Object Model (DOM) Level 3 Core Specification Attr |
Obsolete |
扩展 schemaTypeInfo, isId |
Document Object Model (DOM) Level 1 Core Specification Attr |
Obsolete | 初始定义 |
浏览器兼容性
BCD tables only load in the browser