Node: nodeType プロパティ

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.

nodeTypeNode インターフェイスの読み取り専用プロパティであり、整数値でこのノードが何であるかを識別します。これは様々なノードの種類、例えば elementstextcomments を見分けます。

整数値で、このノードの種類を識別します。可能な値は次の通りです。

Node.ELEMENT_NODE (1)

<p><div> などの Element ノードです。

Node.ATTRIBUTE_NODE (2)

ElementAttribute ノードです。

Node.TEXT_NODE (3)

ElementAttr の中に存在する Text です。

Node.CDATA_SECTION_NODE(4)

<!CDATA[[ … ]]> のような CDATASection です。

Node.PROCESSING_INSTRUCTION_NODE (7)

<?xml-stylesheet … ?> のような XML 文書の ProcessingInstruction です。

Node.COMMENT_NODE (8)

<!-- … --> のような Comment ノードです。

Node.DOCUMENT_NODE (9)

Document ノードです。

Node.DOCUMENT_TYPE_NODE (10)

<!DOCTYPE html> のような DocumentType ノードです。

Node.DOCUMENT_FRAGMENT_NODE (11)

DocumentFragment ノードです。

Node.ENTITY_REFERENCE_NODE (5), Node.ENTITY_NODE (6), Node.NOTATION_NODE (12) は非推奨になっており、使用されなくなっています。

様々な種類のノード

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 = "昔々…";

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

コメント

次の例は、ノードの最初の要素がコメントノードであるかをチェックし、そうでない場合にメッセージを表示するものです。

js
const node = document.documentElement.firstChild;
if (node.nodeType !== Node.COMMENT_NODE) {
  console.warn("コメントを入れてください。");
}

仕様書

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

ブラウザーの互換性

BCD tables only load in the browser