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.

Node 接口的只读属性 nodeType 表示该节点的类型。它可用来区分不同类型的节点,比如元素文本注释

一个指定节点类型的整数。可能的值有:

Node.ELEMENT_NODE1

一个元素节点,例如 <p><div>

Node.ATTRIBUTE_NODE2

元素属性

Node.TEXT_NODE3

元素或者属性中实际的文本

Node.CDATA_SECTION_NODE4

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

Node.PROCESSING_INSTRUCTION_NODE7

一个用于 XML 文档的 ProcessingInstruction,例如 <?xml-stylesheet ... ?> 声明。

Node.COMMENT_NODE8

一个注释节点,例如 <!-- … -->

Node.DOCUMENT_NODE9

一个 Document 节点。

Node.DOCUMENT_TYPE_NODE10

描述文档类型的 DocumentType 节点。例如 <!DOCTYPE html>

Node.DOCUMENT_FRAGMENT_NODE11

一个 DocumentFragment 节点

以下的常量已被弃用且不再使用:Node.ENTITY_REFERENCE_NODE5)、Node.ENTITY_NODE6)和 Node.NOTATION_NODE12)。

示例

不同的节点类型

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

注释

该示例会检查 document 下第一个节点是不是注释,如果不是,则会提醒。

js
const node = document.documentElement.firstChild;
if (node.nodeType !== Node.COMMENT_NODE) {
  console.warn("你应该认真编写代码注释!");
}

规范

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

浏览器兼容性

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