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 只读

表示该属性的命名空间URIDOMString,如果该元素不在命名空间中,则返回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, localNameprefixNode接口。在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
ObsoletenamespaceURI、prefixlocalName从 Node 移至本API,且删除 ownerElement、schemaTypeInfoisId.
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!
FeatureChromeEdgeFirefox (Gecko)Internet ExplorerOperaSafari
基本支持(Yes)[1](Yes)(Yes)(Yes)(Yes)(Yes)
FeatureAndroidAndroid WebviewEdgeFirefox Mobile (Gecko)IE MobileOpera MobileSafari MobileChrome 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

词条统计

浏览:70 次

字数:19439

最后编辑:6 年前

编辑次数:0 次

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文