JavaScript

The nodeType in JavaScript's Node object is an integer value that indicates the type of element, such as a text node, attribute node, or element node.

nodeType [property]

 JavaScriptの DOM(Document Object Model)において、各要素は Nodeオブジェクトとして表現されます。この Nodeオブジェクトには、各要素のタイプを示す nodeType というプロパティがあります。

 nodeTypeは、整数値で表され、以下の定数で定義されています。

Node.ELEMENT_NODE (1)
要素ノードを表します。例えば、<div>、<p>、<ul>などがこれに当たります。
Node.ATTRIBUTE_NODE (2)
属性ノードを表します。例えば、idや classなどがこれに当たります。
Node.TEXT_NODE (3)
テキストノードを表します。例えば、要素内の文字列がこれに当たります。
Node.CDATA_SECTION_NODE (4)
CDATAセクションを表します。
Node.PROCESSING_INSTRUCTION_NODE (7)
処理命令を表します。
Node.COMMENT_NODE (8)
コメントノードを表します。
Node.DOCUMENT_NODE (9)
ドキュメントノードを表します。ドキュメント内のルート要素に相当します。
Node.DOCUMENT_TYPE_NODE (10)
ドキュメントタイプノードを表します。
Node.DOCUMENT_FRAGMENT_NODE (11)
ドキュメントフラグメントノードを表します。

 これらの定数を使用することで、nodeTypeを比較することができます。例えば、次のようにして、テキストノードかどうかを判別することができます。


if (node.nodeType === Node.TEXT_NODE) {
	// テキストノードである場合の処理
}

 また、Nodeオブジェクトは、親子関係を持つことができます。子要素を取得する際には、childNodesプロパティを使用します。このプロパティは、NodeListオブジェクトを返します。この NodeListオブジェクトは、配列のように扱うことができます。


const list = document.getElementById('list');
const items = list.childNodes;

for (let i = 0; i < items.length; i++) {
	const item = items[i];
	
	if (item.nodeType === Node.ELEMENT_NODE) {
		// 要素ノードである場合の処理
	} else if (item.nodeType === Node.TEXT_NODE) {
		// テキストノードである場合の処理
	}
}

 このように、nodeTypeを正しく理解することで、DOM操作をより効率的に行うことができます。