The Attr
interface represents one of a DOM element's attributes as an object. In most DOM methods, you will directly retrieve the attribute as a string (e.g., Element.getAttribute()
), but certain functions (e.g., Element.getAttributeNode()
) or means of iterating return 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;}
Warning: Starting in Gecko 7.0 (Firefox 7.0 / Thunderbird 7.0 / SeaMonkey 2.4), a number of deprecated properties and methods output warning messages to the console. You should revise your code accordingly. See Deprecated properties and methods for a complete list.
Properties
name
Read only- The attribute's name.
namespaceURI
Read only- A
DOMString
representing the namespace URI of the attribute, ornull
if there is no namespace. localName
Read only- A
DOMString
representing the local part of the qualified name of the attribute. prefix
Read only- A
DOMString
representing the namespace prefix of the attribute, ornull
if no prefix is specified. ownerElement
Read onlyThe element holding the attribute.
Note: DOM Level 4 removed this property. The assumption was that since you get an
Attr
object from anElement
, you should already know the associated element. As that doesn't hold true in cases likeAttr
objects 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).
specified
Read only- This property always returns
true
. Originally, it returnedtrue
if the attribute was explicitly specified in the source code or by a script, andfalse
if 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 noted.
attributes
- This property now always returns
NULL
. childNodes
Obsolete since Gecko 14- This property now always returns an empty
NodeList
. firstChild
Obsolete since Gecko 14- This property now always returns
NULL
. isId
Read 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.
lastChild
Obsolete since Gecko 14- This property now always returns
NULL
. nextSibling
- This property now always returns
NULL
. nodeName
- Use
Attr.name
instead. nodeType
- This property now always returns 2 (
ATTRIBUTE_NODE
). nodeValue
- Use
Attr.value
instead. 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
. schemaTypeInfo
' Read 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.value
instead.
The following methods have been deprecated:
appendChild()
Obsolete since Gecko 14- Modify the value of
Attr.value
instead. 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.value
instead. 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.value
instead. replaceChild()
Obsolete since Gecko 14- Modify the value of
Attr.value
instead. setAttributeNode()
- Use
Element.setAttribute()
instead. setAttributeNodeNS()
- Use
Element.setAttributeNS()
instead.
Specifications
Specification | Status | Comment |
---|---|---|
DOMThe definition of 'Attr' in that specification. | Living Standard | Added ownerElement property back
|
DOM4The 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 SpecificationThe definition of 'Attr' in that specification. | Obsolete | Initial definition |
Browser compatibility
The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.
Update compatibility data on GitHub
Desktop | Mobile | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Attr
|
Chrome
Full support 1 |
Edge
Full support 12 |
Firefox
Full support 1 |
IE
Full support 8 |
Opera
Full support 8 |
Safari
Full support 1.3 |
WebView Android
Full support 1 |
Chrome Android
Full support 18 |
Firefox Android
Full support 4 |
Opera Android
Full support 10.1 |
Safari iOS
Full support 1 |
Samsung Internet Android
Full support 1.0 |
localName
|
Chrome Full support 46 Full support 46 Notes' This API was previously available on the |
Edge
Full support ≤18 |
Firefox Full support 48 Full support 48 Notes' This API was previously available on the |
IE
No support No |
Opera Full support 33 Full support 33 Notes' This API was previously available on the |
Safari
Full support 1.3 |
WebView Android Full support 46 Full support 46 Notes' This API was previously available on the |
Chrome Android Full support 46 Full support 46 Notes' This API was previously available on the |
Firefox Android Full support 48 Full support 48 Notes' This API was previously available on the |
Opera Android Full support 33 Full support 33 Notes' This API was previously available on the |
Safari iOS
Full support 1 |
Samsung Internet Android Full support 5.0 Full support 5.0 Notes' This API was previously available on the |
namespaceURI
|
Chrome Full support 46 Full support 46 Notes' This API was previously available on the |
Edge
Full support ≤18 |
Firefox Full support 48 Full support 48 Notes' This API was previously available on the |
IE
No support No |
Opera Full support 33 Full support 33 Notes' This API was previously available on the |
Safari
Full support 1.3 |
WebView Android Full support 46 Full support 46 Notes' This API was previously available on the |
Chrome Android Full support 46 Full support 46 Notes' This API was previously available on the |
Firefox Android Full support 48 Full support 48 Notes' This API was previously available on the |
Opera Android Full support 33 Full support 33 Notes' This API was previously available on the |
Safari iOS
Full support 1 |
Samsung Internet Android Full support 5.0 Full support 5.0 Notes' This API was previously available on the |
prefix
|
Chrome Full support 46 Full support 46 Notes' This API was previously available on the |
Edge
Full support ≤18 |
Firefox Full support 48 Full support 48 Notes' This API was previously available on the |
IE
No support No |
Opera Full support 33 Full support 33 Notes' This API was previously available on the |
Safari
Full support 1.3 |
WebView Android Full support 46 Full support 46 Notes' This API was previously available on the |
Chrome Android Full support 46 Full support 46 Notes' This API was previously available on the |
Firefox Android Full support 48 Full support 48 Notes' This API was previously available on the |
Opera Android Full support 33 Full support 33 Notes' This API was previously available on the |
Safari iOS
Full support 1 |
Samsung Internet Android Full support 5.0 Full support 5.0 Notes' This API was previously available on the |
Legend
- Full support
- Full support
- No support
- No support
- See implementation notes.'
- See implementation notes.
Attr by Mozilla Contributors is licensed under CC-BY-SA 2.5.