节点: nodeType 属性

只读 nodeType 属性是一个 Node 接口的整数,它标识节点的类型。它区分不同的节点类型,例如 元素文本注释

一个整数,指定节点的类型。可能的值包括

Node.ELEMENT_NODE (1)

一个 Element 节点,例如 <p><div>

Node.ATTRIBUTE_NODE (2)

一个 属性,属于一个 Element

Node.TEXT_NODE (3)

一个 Text 节点,位于一个 ElementAttr 中。

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①

浏览器兼容性

BCD 表格仅在启用 JavaScript 的浏览器中加载。