Document: getElementsByTagNameNS() method
Returns a list of elements with the given tag name belonging to the given namespace. The complete document is searched, including the root node.
Syntax
js
getElementsByTagNameNS(namespace, name)
Parameters
namespace
-
The namespace URI of elements to look for (see
element.namespaceURI
). name
-
Either the local name of elements to look for or the special value
*
, which matches all elements (seeelement.localName
).
Return value
A live NodeList
(but see the note below) of
found elements in the order they appear in the tree.
Note: While the W3C specification says returned value is a NodeList
, this method returns a HTMLCollection
in Firefox.
Opera returns a NodeList
, but with a namedItem
method implemented, which makes it similar to a HTMLCollection
. As of January 2012, only in WebKit browsers is the returned value a pure NodeList
.
See bug 14869 for details.
Note: Currently parameters in this method are case-sensitive, but they were case-insensitive in Firefox 3.5 and before.
See the developer release note for Firefox 3.6 and a note in Browser compatibility section in Element.getElementsByTagNameNS
for details.
Examples
In the following example getElementsByTagNameNS
starts from a particular
parent element, and searches topdown recursively through the DOM from that parent
element, looking for child elements matching the tag name
parameter.
Note that when the node on which getElementsByTagName
is invoked is not
the document
node, in fact the
element.getElementsByTagNameNS
method is used.
To use the following example, just copy/paste it into a new file saved with the .xhtml extension.
html
<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>getElementsByTagNameNS example</title>
<script>
function getAllParaElems() {
const allParas = document.getElementsByTagNameNS(
"http://www.w3.org/1999/xhtml",
"p"
);
const num = allParas.length;
alert(`There are ${num} <p> elements in this document`);
}
function div1ParaElems() {
const div1 = document.getElementById("div1");
const div1Paras = div1.getElementsByTagNameNS(
"http://www.w3.org/1999/xhtml",
"p"
);
const num = div1Paras.length;
alert(`There are ${num} <p> elements in div1 element`);
}
function div2ParaElems() {
const div2 = document.getElementById("div2");
const div2Paras = div2.getElementsByTagNameNS(
"http://www.w3.org/1999/xhtml",
"p"
);
const num = div2Paras.length;
alert(`There are ${num} <p> elements in div2 element`);
}
</script>
</head>
<body style="border: solid green 3px">
<p>Some outer text</p>
<p>Some outer text</p>
<div id="div1" style="border: solid blue 3px">
<p>Some div1 text</p>
<p>Some div1 text</p>
<p>Some div1 text</p>
<div id="div2" style="border: solid red 3px">
<p>Some div2 text</p>
<p>Some div2 text</p>
</div>
</div>
<p>Some outer text</p>
<p>Some outer text</p>
<button onclick="getAllParaElems();">
Show all p elements in document
</button>
<br />
<button onclick="div1ParaElems();">
Show all p elements in div1 element
</button>
<br />
<button onclick="div2ParaElems();">
show all p elements in div2 element
</button>
</body>
</html>
Specifications
Specification |
---|
DOM Standard # ref-for-dom-document-getelementsbytagnamens① |
Browser compatibility
BCD tables only load in the browser