JavaScript入門 | ドキュメントオブジェクトモデル | ノード(node)

ノード(node)

HTML DOMは、ノード(node)と呼ばれる階層的な単位に情報を保存している。HTML DOMはこれらのノードを定義し、それらの間の関係を説明する役割を持つ。

HTML Node Tree

HTML文書の情報は、ノードツリー(node tree)と呼ばれる階層構造に保存される。このノードツリーはノードの集合であり、ノード間の関係を示す。

ノードツリーは最上位レベルのルートノード(root node)から始まり、最下位レベルのテキストノードまで伸びていく。JavaScriptではHTML DOMを利用して、ノードツリーに含まれるすべてのノードにアクセスできる。

ノードの種類

W3C HTML DOM標準によると、HTML文書のすべてのものはノードである。

HTML文書を構成する代表的なノードの種類は次のとおりである。

ノード 説明
文書ノード(document node) HTML文書全体を表すノードである。
要素ノード(element node) すべてのHTML要素は要素ノードであり、属性ノードを持つことができる唯一のノードである。
属性ノード(attribute node) すべてのHTML要素の属性は属性ノードであり、要素ノードに関する情報を持っている。ただし、その要素ノードの子ノード(child node)には含まれない。
テキストノード(text node) HTML文書のすべてのテキストはテキストノードである。
コメントノード(comment node) HTML文書のすべてのコメントはコメントノードである。

ノード間の関係

ノードツリーのすべてのノードは、互いに階層的な関係を持っている。

ノードツリーの最上位には、ただ1つのルートノード(root node)が存在する。

ルートノードを除くすべてのノードは、ただ1つの親ノード(parent node)を持つ。すべての要素ノードは子ノード(child node)を持つことができる。

兄弟ノード(sibling node)とは、同じ親ノードを持つすべてのノードを指す。祖先ノード(ancestor node)とは、親ノードを含め、階層的に現在のノードより上位に存在するすべてのノードを指す。子孫ノード(descendant node)とは、子ノードを含め、階層的に現在のノードより下位に存在するすべてのノードを指す。