files/en-us/web/api/element/getattributenames/index.md
{{APIRef("DOM")}}
The getAttributeNames() method of the
{{domxref("Element")}} interface returns the attribute names of the element as an
{{jsxref("Array")}} of strings. If the element has no attributes it returns an empty
array.
Using getAttributeNames() along with
{{domxref("Element.getAttribute","getAttribute()")}}, is a memory-efficient and
performant alternative to accessing {{domxref("Element.attributes")}}.
The names returned by getAttributeNames() are qualified attribute names, meaning that attributes with a namespace prefix have their names returned with that namespace prefix (not the actual namespace), followed by a colon, followed by the attribute name (for example, xlink:href), while any attributes which have no namespace prefix have their names returned as-is (for example, href).
getAttributeNames()
None.
An ({{jsxref("Array")}}) of strings.
The following example shows how:
getAttributeNames() returns that namespace prefix along with the attribute name.getAttributeNames() returns just the attribute name, as-is.It's important to understand that:
getAttributeNames() will return just the attribute name, with no indication that the attribute is in a namespace.The example below includes such a "namespaced but without a namespace prefix" case.
const element = document.createElement("a");
// set "href" attribute with no namespace and no namespace prefix
element.setAttribute("href", "https://example.com");
// set "href" attribute with namespace and also "xlink" namespace prefix
element.setAttributeNS(
"http://www.w3.org/1999/xlink",
"xlink:href",
"https://example.com",
);
// set "show" attribute with namespace but no namespace prefix
element.setAttributeNS("http://www.w3.org/1999/xlink", "show", "new");
// Iterate over element's attributes
for (const name of element.getAttributeNames()) {
const value = element.getAttribute(name);
console.log(name, value);
}
// logs:
// href https://example.com
// xlink:href https://example.com
// show new
{{Specifications}}
{{Compat}}