This type represents a DOM element's attribute as an object. In most DOM methods, you will probably directly retrieve the attribute as a string (e.g., Element.getAttribute(), but certain functions (e.g., Element.getAttributeNode()) or means of iterating give Attr types.
<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="https://developer.mozilla.org/en-US/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/en-US/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="https://developer.mozilla.org/en-US/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;}
Properties
nameRead only- The attribute's name.
namespaceURIRead only- A
DOMStringrepresenting the namespace URI of the attribute, ornullif there is no namespace. localNameRead only- A
DOMStringrepresenting the local part of the qualified name of the attribute. prefixRead only- A
DOMStringrepresenting the namespace prefix of the attribute, ornullif no prefix is specified. ownerElementRead only-
The element holding the attribute.
Note: DOM Level 4 removed this property. The assumption was that since you get an
Attrobject from anElement, you should already know the associated element.
As that doesn't hold true in cases likeAttrobjects being returned byDocument.evaluate, the DOM Living Standard reintroduced the property.Gecko outputs a deprecation note starting from Gecko 7.0 (Firefox 7.0 / Thunderbird 7.0 / SeaMonkey 2.4). This note was removed again in Gecko 49.0 (Firefox 49.0 / Thunderbird 49.0 / SeaMonkey 2.46).
specifiedRead only- This property always returns
true. Originally, it returnedtrueif the attribute was explicitly specified in the source code or by a script, andfalseif its value came from the default one defined in the document's DTD. value- The attribute's value.
Note: DOM Level 3 defined namespaceURI, localName and prefix on the Node interface. In DOM4 they were moved to Attr.
This change is implemented in Chrome since version 46.0 and Firefox since version 48.0.
Deprecated properties and methods
The following properties have been deprecated. Where available, the appropriate replacement is provided.
attributes- This property now always returns
NULL. childNodesObsolete since Gecko 14- This property now always returns an empty
NodeList. firstChildObsolete since Gecko 14- This property now always returns
NULL. isIdRead only- Indicates whether the attribute is an "ID attribute". An "ID attribute" being an attribute which value is expected to be unique across a DOM Document. In HTML DOM, "id" is the only ID attribute, but XML documents could define others. Whether or not an attribute is unique is often determined by a DTD or other schema description.
lastChildObsolete since Gecko 14- This property now always returns
NULL. nextSibling- This property now always returns
NULL. nodeName- Use
Attr.nameinstead. nodeType- This property now always returns 2 (
ATTRIBUTE_NODE). nodeValue- Use
Attr.valueinstead. ownerDocument- You shouldn't have been using this in the first place, so you probably don't care that this is going away.
parentNode- This property now always returns
NULL. previousSibling- This property now always returns
NULL. schemaTypeInfoRead only- The type information associated with this attribute. While the type information contained in this attribute is guaranteed to be correct after loading the document or invoking
Document.normalizeDocument, this property may not be reliable if the node was moved. specified- This property now always returns
true. textContent- Use
Attr.valueinstead.
The following methods have been deprecated:
appendChild()Obsolete since Gecko 14- Modify the value of
Attr.valueinstead. cloneNode()- You shouldn't have been using this in the first place, so you probably don't care that this is going away.
createAttribute()- Use
Element.setAttribute()instead. createAttributeNS()- Use
Element.setAttributeNS()instead. getAttributeNode()- Use
Element.getAttribute()instead. getAttributeNodeNS()- Use
Element.getAttributeNS()instead. hasAttributes()Obsolete since Gecko 21.0- This method now always returns false.
hasChildNodes()- This method now always returns false.
insertBefore()- Modify the value of
Attr.valueinstead. isSupported()- You shouldn't have been using this in the first place, so you probably don't care that this is going away.
isEqualNode()- You shouldn't have been using this in the first place, so you probably don't care that this is going away.
normalize()- You shouldn't have been using this in the first place, so you probably don't care that this is going away.
removeAttributeNode()- Use
Element.removeAttribute()instead. removeChild()Obsolete since Gecko 14- Modify the value of
Attr.valueinstead. replaceChild()Obsolete since Gecko 14- Modify the value of
Attr.valueinstead. setAttributeNode()- Use
Element.setAttribute()instead. setAttributeNodeNS()- Use
Element.setAttributeNS()instead.
Specifications
| Specification | Status | Comment |
|---|---|---|
| DOM The definition of 'Attr' in that specification. |
Living Standard | Added ownerElement property back |
| DOM4 The definition of 'Attr' in that specification. |
Obsolete | Moved namespaceURI, prefix and localName from Node to this API and removed ownerElement, schemaTypeInfo and isId. |
| Document Object Model (DOM) Level 3 Core Specification The definition of 'Attr' in that specification. |
Obsolete | Initial definition |
Browser compatibility
| Desktop | Mobile | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Basic support | Chrome
Full support
Yes
| Edge Full support Yes | Firefox Full support Yes | IE Full support Yes | Opera
Full support
Yes
| Safari Full support Yes | WebView Android
Full support
Yes
| Chrome Android
Full support
Yes
| Edge Mobile Full support Yes | Firefox Android Full support Yes | Opera Android
Full support
Yes
| Safari iOS Full support Yes | Samsung Internet Android ? |
localName | Chrome
Full support
46
| Edge ? | Firefox
Full support
48
| IE ? | Opera Full support Yes | Safari ? | WebView Android ? | Chrome Android ? | Edge Mobile ? | Firefox Android
Full support
48
| Opera Android ? | Safari iOS ? | Samsung Internet Android ? |
namespaceURI | Chrome
Full support
46
| Edge ? | Firefox
Full support
48
| IE ? | Opera Full support Yes | Safari ? | WebView Android ? | Chrome Android ? | Edge Mobile ? | Firefox Android
Full support
48
| Opera Android ? | Safari iOS ? | Samsung Internet Android ? |
prefix | Chrome
Full support
46
| Edge Full support Yes | Firefox
Full support
48
| IE ? | Opera Full support Yes | Safari ? | WebView Android ? | Chrome Android ? | Edge Mobile ? | Firefox Android
Full support
48
| Opera Android ? | Safari iOS ? | Samsung Internet Android ? |
Legend
- Full support
- Full support
- Compatibility unknown
- Compatibility unknown
- See implementation notes.
- See implementation notes.