Node: nodeType property

Baseline Widely available

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 nodeType property of a Node interface is an integer that identifies what the node is. It distinguishes different kind of nodes from each other, such as elements, text and comments.

Value

An integer which specifies the type of the node. Possible values are:

Node.ELEMENT_NODE (1)

An Element node like <p> or <div>.

Node.ATTRIBUTE_NODE (2)

An Attribute of an Element.

Node.TEXT_NODE (3)

The actual Text inside an Element or Attr.

Node.CDATA_SECTION_NODE (4)

A CDATASection, such as <!CDATA[[ … ]]>

Node.PROCESSING_INSTRUCTION_NODE (7)

A ProcessingInstruction of an XML document, such as <?xml-stylesheet … ?>.

Node.COMMENT_NODE (8)

A Comment node, such as <!-- … -->.

Node.DOCUMENT_NODE (9)

A Document node.

Node.DOCUMENT_TYPE_NODE (10)

A DocumentType node, such as <!doctype html>.

Node.DOCUMENT_FRAGMENT_NODE (11)

A DocumentFragment node.

The following constants have been deprecated and are not in use anymore: Node.ENTITY_REFERENCE_NODE (5), Node.ENTITY_NODE (6), and Node.NOTATION_NODE (12).

Examples

Different types of nodes

js
document.nodeType === Node.DOCUMENT_NODE; // true
document.doctype.nodeType === Node.DOCUMENT_TYPE_NODE; // true

document.createDocumentFragment().nodeType === Node.DOCUMENT_FRAGMENT_NODE; // true

const p = document.createElement("p");
p.textContent = "Once upon a time…";

p.nodeType === Node.ELEMENT_NODE; // true
p.firstChild.nodeType === Node.TEXT_NODE; // true

Comments

This example checks if the first node inside the document element is a comment, and displays a message if not.

js
const node = document.documentElement.firstChild;
if (node.nodeType !== Node.COMMENT_NODE) {
  console.warn("You should comment your code!");
}

Specifications

Specification
DOM Standard
# ref-for-dom-node-nodetype①

Browser compatibility

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
nodeType

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support