This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
The setAttributeNode() method of the Element interface adds a new Attr node to the specified element.
If you don't need to work with the attribute node (such as cloning from another element) before adding it, you can use the setAttribute() method instead.
setAttributeNode(attribute)
The replaced attribute node, if any, returned by this function.
This example copies the align attribute from one element to another.
<div id="one" align="left">one</div> <div id="two">two</div>
let d1 = document.getElementById("one");
let d2 = document.getElementById("two");
let a = d1.getAttributeNode("align");
d2.setAttributeNode(a.cloneNode(true));
// Returns: 'left'
alert(d2.attributes[1].value);
If the attribute named already exists on the element, that attribute is replaced with the new one and the replaced one is returned.
| Specification |
|---|
| DOM> # dom-element-setattributenode> |
| Desktop | Mobile | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | WebView Android | WebView on iOS | |
setAttributeNode |
1 | 12 | 1 | ≤12.1 | 1 | 18 | 4 | ≤12.1 | 1 | 1.0 | 4.4 | 1 |
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/Element/setAttributeNode