The Element.namespaceURI read-only property returns the namespace URI of the element, or null if the element is not in a namespace.

Before DOM4 this API was defined within the Node interface.


namespace = element.namespaceURI


In this snippet, an element is being examined for its localName and its namespaceURI. If the namespaceURI returns the XUL namespace and the localName returns "browser", then the node is understood to be a XUL <browser/>.

if (element.localName == "browser" && 
    element.namespaceURI == "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul") {
  // this is a XUL browser 


This is not a computed value that is the result of a namespace lookup based on an examination of the namespace declarations in scope. The namespace URI of a node is frozen at the node creation time.

In Firefox 3.5 and earlier, the namespace URI for HTML elements in HTML documents is null. In later versions, in compliance with HTML5, it is http://www.w3.org/1999/xhtml as in XHTML.

You can create an element with the specified namespaceURI using the DOM Level 2 method document.createElementNS.

The DOM does not handle or enforce namespace validation per se. It is up to the DOM application to do any validation necessary. Note too that the namespace prefix, once it is associated with a particular element, cannot be changed.


Specification Status Comment
The definition of 'Element.namespaceuri' in that specification.
Recommendation Initial definition

Browser compatibility

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
Basic support 46.0[1] 48.0 (48.0)[1] ? (Yes) ?
Feature Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support ? 48.0 (48.0)[1] ? ? ?

[1] This API was previously available on the Node API.

See also

Document Tags and Contributors

 Contributors to this page: Sebastianz, rolfedh, jpmedley, stuart
 Last updated by: Sebastianz,