Node: nodeType 屬性

Baseline 已廣泛支援

此特性已相當成熟,可在許多裝置和瀏覽器版本上使用。自 ⁨2015 年 7 月⁩以來,各瀏覽器均已提供此特性。

Node 介面的只讀 nodeType 屬性是一個整數,用於標識節點是什麼。它區分不同型別的節點,例如 元素文字註釋

一個指定節點型別的整數。可能的值為:

Node.ELEMENT_NODE (1)

一個 Element 節點,例如 <p><div>

Node.ATTRIBUTE_NODE (2)

一個 ElementAttribute

Node.TEXT_NODE (3)

一個 ElementAttr 中的實際 Text

Node.CDATA_SECTION_NODE (4)

一個 CDATASection,例如 <!CDATA[[ … ]]>

Node.PROCESSING_INSTRUCTION_NODE (7)

一個 XML 文件的 ProcessingInstruction,例如 <?xml-stylesheet … ?>

Node.COMMENT_NODE (8)

一個 Comment 節點,例如 <!-- … -->

Node.DOCUMENT_NODE (9)

一個 Document 節點。

Node.DOCUMENT_TYPE_NODE (10)

一個 DocumentType 節點,例如 <!doctype html>

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 = "Once upon a time…";

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("You should comment your code!");
}

規範

規範
DOM
# ref-for-dom-node-nodetype①

瀏覽器相容性