DOMツリーの構造 | DOMの仕組み | JavaScript 超完全入門 基本から発展までのすべて

スポンサーリンク
スポンサーリンク
amazon
スマイルSALE
--:--:--
ad. 価格範囲を指定して商品を探せます

DOM(Document Object Model)とは?

DOM(Document Object Model)とは、HTMLやXML文書の構造を、JavaScriptから操作できるオブジェクトとして表した仕組みです。

ブラウザはHTMLを読み込むと、その内容をDOMとして管理します。JavaScriptでは、このDOMを操作することで、ページ内の文字を変更したり、新しい要素を追加したり、クリックなどのイベントに応じて表示を変えたりできます。

つまりDOMは、HTMLとJavaScriptをつなぐための重要な仕組みです。

DOMツリーの基本構造

DOMは、HTML文書をツリー構造として表します。

ツリー構造とは、親要素・子要素・兄弟要素のように、階層関係を持つ構造のことです。HTMLのタグ同士の関係がそのまま木のような形で表されます。

DOMツリーの例

次のHTMLを例に見てみましょう。

<!DOCTYPE html>
<html>
  <head>
    <title>ページのタイトル</title>
  </head>
  <body>
    <h1>見出し</h1>
    <p>これは段落です。</p>
  </body>
</html>

このHTMLは、DOMでは次のような構造として扱われます。

document
└── html
    ├── head
    │   └── title
    │       └── "ページのタイトル"
    └── body
        ├── h1
        │   └── "見出し"
        └── p
            └── "これは段落です。"

このように、HTMLの要素は親子関係を持つツリーとして管理されます。

DOMツリーを構成する主なノード

DOMツリーは、さまざまな種類のノードで構成されます。ノードとは、DOMを構成する部品のことです。

ノードの種類 説明
ドキュメントノード HTML文書全体を表す。JavaScriptではdocumentとして扱う。
要素ノード <div><p>などのHTMLタグを表す。
テキストノード 要素内に書かれた文字列を表す。
コメントノード <!-- コメント -->のようなHTMLコメントを表す。
属性ノード idclassなどの属性を表す。

初心者のうちは、まず要素ノードテキストノードを理解しておくと十分です。

要素ノードとテキストノードの関係

DOMでは、HTMLタグだけでなく、その中に書かれた文字もノードとして扱われます。

例えば、次のHTMLを見てみましょう。

<h1>こんにちは、世界!</h1>

このHTMLは、DOMでは次のように扱われます。

h1(要素ノード)
└── "こんにちは、世界!"(テキストノード)

<h1>は要素ノードで、その中の「こんにちは、世界!」はテキストノードです。

JavaScriptでDOMを操作する

JavaScriptを使うと、DOMを通してHTMLの内容を変更できます。

テキストを変更する例

// h1要素を取得
const heading = document.querySelector("h1");

// テキストを変更
heading.textContent = "新しい見出し";

このコードでは、querySelector()<h1>要素を取得し、textContentで表示される文字を変更しています。

  • document.querySelector("h1")で最初の<h1>要素を取得します。
  • textContentで要素内の文字を変更します。
  • JavaScriptからHTMLの表示内容を動的に変えられます。

DOM操作でよく使うメソッド

JavaScriptでDOMを操作する際には、次のようなメソッドをよく使います。

メソッド 説明
getElementById() IDを指定して要素を取得する。
querySelector() CSSセレクタを使って最初に一致する要素を取得する。
querySelectorAll() CSSセレクタに一致するすべての要素を取得する。
createElement() 新しいHTML要素を作成する。
appendChild() 作成した要素を親要素へ追加する。
remove() 指定した要素を削除する。

DOMを操作する簡単な例

次に、新しい要素を作成してページへ追加する例を見てみましょう。

// 新しいp要素を作成
const paragraph = document.createElement("p");

// テキストを設定
paragraph.textContent = "JavaScriptで追加した段落です。";

// bodyの最後に追加
document.body.appendChild(paragraph);

このコードを実行すると、JavaScriptによって新しい段落がページへ追加されます。

  • createElement()で新しい要素を作成します。
  • textContentで文字を設定します。
  • appendChild()でページへ追加します。

DOMを理解するメリット

DOMを理解すると、JavaScriptで次のような操作ができるようになります。

  • ボタンをクリックしたら文字を変更する。
  • フォームに入力された値を取得する。
  • リスト項目を追加・削除する。
  • 画像やリンク先を動的に変更する。
  • イベントに応じて表示を切り替える。

Webページに動きを付けるためには、DOMの理解が欠かせません。

まとめ

  • DOMは、HTML文書をJavaScriptから操作できるオブジェクトとして表した仕組みです。
  • ブラウザはHTMLを読み込むと、DOMツリーとして管理します。
  • DOMツリーは、親子関係を持つツリー構造です。
  • HTMLタグは要素ノード、文字はテキストノードとして扱われます。
  • JavaScriptでは、DOMを操作して文字の変更や要素の追加・削除ができます。
  • querySelector()createElement()などはDOM操作でよく使うメソッドです。
  • DOMを理解すると、動的でインタラクティブなWebページを作れるようになります。