Attr

该类型使用对象来表示一个 DOM 元素的属性。在大多数 DOM 方法中,你可能会直接通过字符串的方式获取属性值(例如Element.getAttribute()),但是一些函数(例如Element.getAttributeNode())或通过迭代器访问时则返回Attr类型。

EventTarget Node Attr

警告: 从 Gecko 7.0 开始(Firefox 7.0 / Thunderbird 7.0 / SeaMonkey 2.4),控制台会输出这些方法和属性将会被移除的警告信息。你应该对代码进行相应的修正。点击废弃的属性和方法查看完整的列表。

警告:DOM4[REC]中,为了规范化 Attr 的实现,它不再继承自Node。在目前DOM4.1[WD]中又有变动,因此不建议使用 Attr 对象上有关Node的属性和方法。

属性

name (en-US) 只读

该属性的名称

namespaceURI 只读

表示该属性的命名空间 URIDOMString,如果该元素不在命名空间中,则返回 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, localNameprefixNode接口。在 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()

使用Element.setAttribute()来代替

createAttributeNS()

使用Element.setAttributeNS()来代替

getAttributeNode()

使用Element.getAttribute()来代替

getAttributeNodeNS()

使用Element.getAttributeNS() (en-US)来代替

hasAttributes() 已弃用

当前该方法总是返回false.

hasChildNodes()

当前该方法总是返回false.

insertBefore()

通过编辑Attr.value (en-US)来实现相同效果

isSupported()

这个方法本不应当被在这里使用,所以无须担心其演变

isEqualNode()

这个方法本不应当被在这里使用,所以无须担心其演变

normalize()

这个方法本不应当被在这里使用,所以无须担心其演变

removeAttributeNode()

使用Element.removeAttribute()来代替

removeChild() 已弃用

通过编辑Attr.value (en-US)来实现相同效果

replaceChild() 已弃用

通过编辑Attr.value (en-US)来实现相同效果

setAttributeNode()

使用Element.setAttribute()来代替

setAttributeNodeNS()

使用Element.setAttributeNS()来代替

规格

Specification
DOM Standard
# interface-attr

浏览器兼容性

BCD tables only load in the browser

参考