Attr
该类型使用对象来表示一个 DOM 元素的属性。在大多数 DOM 方法中,你可能会直接通过字符串的方式获取属性值(例如Element.getAttribute()
),但是一些函数(例如Element.getAttributeNode()
)或通过迭代器访问时则返回Attr
类型。
警告: 从 Gecko 7.0 开始,控制台会输出这些方法和属性将会被移除的警告信息。你应该对代码进行相应的修正。点击废弃的属性和方法查看完整的列表。
警告: 在 DOM4[REC] 中,为了规范化 Attr 的实现,它不再继承自Node
。在目前 DOM4.1[WD] 中又有变动,因此不建议使用 Attr 对象上有关Node
的属性和方法。
属性
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 开始会输出一个废弃的提示信息。该提示信息在 Gecko 49.0 再次被删除。
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
已弃用-
当前该属性总是返回一个空的
NodeList
. firstChild
已弃用-
当前该属性总是返回 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()
已弃用-
通过编辑
Attr.value
(en-US)属性来实现相同的效果 cloneNode()
-
这个方法本不应当在这里被使用,所以无须担心其演变
createAttribute()
createAttributeNS()
getAttributeNode()
getAttributeNodeNS()
hasAttributes()
已弃用-
当前该方法总是返回
false. hasChildNodes()
-
当前该方法总是返回
false. insertBefore()
-
通过编辑
Attr.value
(en-US)来实现相同效果 isEqualNode()
-
这个方法本不应当被在这里使用,所以无须担心其演变
normalize()
-
这个方法本不应当被在这里使用,所以无须担心其演变
removeAttributeNode()
removeChild()
已弃用-
通过编辑
Attr.value
(en-US)来实现相同效果 replaceChild()
已弃用-
通过编辑
Attr.value
(en-US)来实现相同效果 setAttributeNode()
setAttributeNodeNS()
规格
Specification |
---|
DOM Standard # interface-attr |
浏览器兼容性
BCD tables only load in the browser