This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
The read-only nodeName property of Node returns the name of the current node as a string.
A string. Values for the different types of nodes are:
AttrThe value of Attr.name, that is the qualified name of the attribute.
CDATASectionThe string "#cdata-section".
CommentThe string "#comment".
DocumentThe string "#document".
DocumentFragmentThe string "#document-fragment".
DocumentTypeThe value of DocumentType.name
ElementThe value of Element.tagName, that is the uppercase name of the element tag if an HTML element, or the lowercase element tag if an XML element (like a SVG or MathML element).
ProcessingInstructionThe value of ProcessingInstruction.target
TextThe string "#text".
This example displays the node names of several nodes
This is some HTML: <div id="d1">Hello world</div> <!-- Example of comment --> Text <span>Text</span> Text<br /> <svg height="20" width="20"> <circle cx="10" cy="10" r="5" stroke="black" stroke-width="1" fill="red" /> </svg> <hr /> <output id="result">Not calculated yet.</output>
and the following script:
let node = document.querySelector("body").firstChild;
let result = "Node names are:\n";
while (node) {
result += `${node.nodeName}\n`;
node = node.nextSibling;
}
const output = document.getElementById("result");
output.innerText = result;
| Specification |
|---|
| DOM> # ref-for-dom-node-nodename①> |
| Desktop | Mobile | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | WebView Android | WebView on iOS | |
nodeName |
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/Node/nodeName