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操作をより効率的に行うことができます。