This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
The lookupNamespaceURI() method of the Node interface takes a prefix as parameter and returns the namespace URI associated with it on the given node if found (and null if not). This method's existence allows Node objects to be passed as a namespace resolver to XPathEvaluator.createExpression() and XPathEvaluator.evaluate().
lookupNamespaceURI(prefix)
prefixThe prefix to look for.
Note: This parameter is not optional, but can be set to null.
A string containing the namespace URI corresponding to the prefix.
null if the node is a DocumentFragment, DocumentType, Document with no documentElement, or Attr with no associated element.prefix is "xml", the return value is always "http://www.w3.org/XML/1998/namespace".prefix is "xmlns", the return value is always "http://www.w3.org/2000/xmlns/".prefix is null, the return value is the default namespace URI.null.<div class="hidden">
<div>Test HTML element</div>
<svg>
<text>Test SVG element</text>
</svg>
<math>Test MathML element</math>
</div>
<table>
<thead>
<tr>
<th><code>prefix</code></th>
<th><code><div></code></th>
<th><code><svg></code></th>
<th><code><math></code></th>
</tr>
</thead>
<tbody></tbody>
</table>
const htmlElt = document.querySelector("div");
const svgElt = document.querySelector("svg");
const mathElt = document.querySelector("math");
const tbody = document.querySelector("tbody");
for (const prefix of ["xmlns", "xml", "html", "svg", "xlink", "", null]) {
const row = document.createElement("tr");
tbody.appendChild(row);
row.appendChild(document.createElement("td")).textContent =
JSON.stringify(prefix);
for (const el of [htmlElt, svgElt, mathElt]) {
console.log(el, prefix, el.lookupNamespaceURI(prefix));
row.appendChild(document.createElement("td")).textContent = String(
el.lookupNamespaceURI(prefix),
);
}
}
| Specification |
|---|
| DOM> # dom-node-lookupnamespaceuri> |
| Desktop | Mobile | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | WebView Android | WebView on iOS | |
lookupNamespaceURI |
1 | 12 | 1 | ≤12.1 | 3 | 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/Node/lookupNamespaceURI