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)とは、子ノードを含め、階層的に現在のノードより下位に存在するすべてのノードを指す。