Attr - Web API 接口参考 编辑
该类型使用对象来表示一个DOM元素的属性。在大多数DOM方法中,你可能会直接通过字符串的方式获取属性值(例如Element.getAttribute()
),但是一些函数(例如Element.getAttributeNode()
)或通过迭代器访问时则返回Attr
类型。
<div id="interfaceDiagram" style="display: inline-block; position: relative; width: 100%; padding-bottom: 11.666666666666666%; vertical-align: middle; overflow: hidden;"><svg style="display: inline-block; position: absolute; top: 0; left: 0;" viewbox="-50 0 600 70" preserveAspectRatio="xMinYMin meet"><a xlink:href="/wiki/zh-CN/docs/Web/API/EventTarget" target="_top"><rect x="1" y="1" width="110" height="50" fill="#fff" stroke="#D4DDE4" stroke-width="2px" /><text x="56" y="30" font-size="12px" font-family="Consolas,Monaco,Andale Mono,monospace" fill="#4D4E53" text-anchor="middle" alignment-baseline="middle">EventTarget</text></a><polyline points="111,25 121,20 121,30 111,25" stroke="#D4DDE4" fill="none"/><line x1="121" y1="25" x2="151" y2="25" stroke="#D4DDE4"/><a xlink:href="https://developer.mozilla.org/wiki/zh-CN/docs/Web/API/Node" target="_top"><rect x="151" y="1" width="75" height="50" fill="#fff" stroke="#D4DDE4" stroke-width="2px" /><text x="188.5" y="30" font-size="12px" font-family="Consolas,Monaco,Andale Mono,monospace" fill="#4D4E53" text-anchor="middle" alignment-baseline="middle">Node</text></a><polyline points="226,25 236,20 236,30 226,25" stroke="#D4DDE4" fill="none"/><line x1="236" y1="25" x2="266" y2="25" stroke="#D4DDE4"/><a xlink:href="/wiki/zh-CN/docs/Web/API/Attr" target="_top"><rect x="266" y="1" width="75" height="50" fill="#F4F7F8" stroke="#D4DDE4" stroke-width="2px" /><text x="303.5" y="30" font-size="12px" font-family="Consolas,Monaco,Andale Mono,monospace" fill="#4D4E53" text-anchor="middle" alignment-baseline="middle">Attr</text></a></svg></div>
a:hover text { fill: #0095DD; pointer-events: all;}
警告:从Gecko 7.0开始(Firefox 7.0 / Thunderbird 7.0 / SeaMonkey 2.4),控制台会输出这些方法和属性将会被移除的警告信息。你应该对代码进行相应的修正。点击Deprecated properties and methods查看完整的列表。 在DOM4[REC]中,为了规范化Attr的实现,它不再继承自Node
。在目前DOM4.1[WD]中又有变动,因此不建议使用Attr对象上有关Node
的属性和方法。属性
name
只读- 该属性的名称
namespaceURI
只读表示该属性的命名空间URI
DOMString
,如果该元素不在命名空间中,则返回null。localName
只读表示该属性的命名空间限定的本地名称
DOMString
。prefix
只读- 表示该属性的命名空间前缀
DOMString
,如果没有前缀指定则返回null。 ownerElement
只读该属性所附属的元素节点。
注意: 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
只读- 该属性将返回
真
。如果这个属性你在源代码或者在脚本中明确指定的话,它总是返回真。否则它是由文档的DTD默认定义的,将总是返回假
。 value
- 属性的值
注意: 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或其他文档模式描述文件决定。
lastChild
当前该属性总是返回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 | 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 | 初始定义 |
浏览器兼容性
We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!Feature | Chrome | Edge | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
基本支持 | (Yes)[1] | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) |
Feature | Android | Android Webview | Edge | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile | Chrome for Android |
---|---|---|---|---|---|---|---|---|
基本支持 | (Yes) | (Yes)[1] | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes)[1] |
[1] As of Chrome 45, this property no longer inherits from Node.
参考
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论