setAttributeNS adds a new attribute or changes the value of an attribute with the given namespace and name.


element.setAttributeNS(namespace, name, value)
  • namespace is a string specifying the namespace of the attribute.
  • name is a string identifying the attribute by its qualified name; that is, a namespace prefix followed by a colon followed by a local name.
  • value is the desired string value of the new attribute.


let d = document.getElementById('d1'); 
d.setAttributeNS('', 'align', 'center');


DOM methods dealing with element's attributes:

Not namespace-aware, most commonly used methods Namespace-aware variants (DOM Level 2) DOM Level 1 methods for dealing with Attr nodes directly (seldom used) DOM Level 2 namespace-aware methods for dealing with Attr nodes directly (seldom used)
setAttribute (DOM 1) setAttributeNS setAttributeNode setAttributeNodeNS
getAttribute (DOM 1) getAttributeNS getAttributeNode getAttributeNodeNS
hasAttribute (DOM 2) hasAttributeNS - -
removeAttribute (DOM 1) removeAttributeNS removeAttributeNode -

setAttributeNS is the only method for namespaced attributes which expects the fully qualified name, i.e. "namespace:localname".


DOM Level 2 Core: setAttributeNS

DOM-Level-2-Core: glossary qualified name

Browser compatibility

Update compatibility data on GitHub
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidEdge MobileFirefox for AndroidOpera for AndroidSafari on iOSSamsung Internet
Basic supportChrome Full support YesEdge ? Firefox ? IE ? Opera Full support YesSafari ? WebView Android Full support YesChrome Android Full support YesEdge Mobile ? Firefox Android ? Opera Android Full support YesSafari iOS ? Samsung Internet Android ?


Full support  
Full support
Compatibility unknown  
Compatibility unknown

Document Tags and Contributors

Last updated by: mfluehr,