Element: attributes property
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
The Element.attributes
property returns a live collection
of all attribute nodes registered to the specified node. It is a
NamedNodeMap
, not an Array
, so it has no Array
methods and the Attr
nodes' indexes may differ among browsers. To be more
specific, attributes
is a key/value pair of strings that represents any
information regarding that attribute.
Value
A NamedNodeMap
object.
Examples
Basic examples
js
// Get the first <p> element in the document
const paragraph = document.querySelector("p");
const attributes = paragraph.attributes;
Enumerating elements attributes
You can enumerate through an element's attributes using for...of
.
The following example runs through the attribute nodes for the element in the document
with id "paragraph", and prints each attribute's value.
html
<p id="paragraph" class="green" contenteditable>Sample Paragraph</p>
<input type="button" value="Show paragraph attribute name and value" />
<pre id="result"></pre>
css
.green {
color: green;
}
js
const paragraph = document.getElementById("paragraph");
const result = document.getElementById("result");
const btn = document.querySelector("input[type='button']");
btn.addEventListener("click", () => {
// First, let's verify that the paragraph has some attributes
if (paragraph.hasAttributes()) {
let output = "Attributes of first paragraph:\n";
for (const attr of paragraph.attributes) {
output += `${attr.name} -> ${attr.value}\n`;
}
result.textContent = output;
} else {
result.textContent = "No attributes to show";
}
});
Specifications
Specification |
---|
DOM # dom-element-attributes |
Browser compatibility
See also
NamedNodeMap
, the interface of the returned object- Cross-browser compatibility considerations: on quirksmode