見出し画像

JavaScript初心者の疑問:「DOM」って結局なに?

わかっていそうでずっとわからなかった単語「DOM」。

「簡単すぎて人に聞けない!」
「だけど意味を聞かれても説明できない!」
そう思って、今回は言語化してみようと思います。

「DOM」とは何か?

DOMとは、JavaScriptでhtmlの要素を操作するための仕組みのこと。

「Document Object Model」の略で、直訳は「ドキュメントをオブジェクト(物)として扱うモデル」。HTMLやXMLといったドキュメントを扱うための仕組みと表現できる。

DOMとはどんな仕組み?

まず、ツリー構造と呼ばれる階層構造を取るのがDOMの特徴。

以下のように、HTMLは<body>を頂点として、その下にいくつかの<section>と、そのさらに下にいくつかの<p>で構成されている。

<body>
  <section>
    <p>あいうえお</p>
    <p>かきくけこ</p>
  </section>

  <section>
    <p>アイウエオ</p>
    <p>カキクケコ</p>
  </section>
</body>

DOMという仕組みが、この階層構造を定義している。

各要素は「ノード」と呼ばれ、階層の上から「親ノード」「兄弟姉妹ノード」「子ノード」のように表現される。

<body>  // 親ノード
  <section>  // 兄弟姉妹ノード
    <p>あいうえお</p>  // 子ノード
    <p>かきくけこ</p>
  </section>

  <section>
    <p>アイウエオ</p>
    <p>カキクケコ</p>
  </section>
</body>

HTMLを操作するときには、上記のノード(要素)を指定してWebページ内の指定箇所とプログラミング言語を繋ぎ、値を操作します。

具体的に「DOM」でできること

<p>や<img>のようなの要素にアクセスできる。DOMを操作することにより、各要素の値をダイレクトに操作することが可能です。

例えば、<p>の中身のテキストを変更したり、<img src="sample.jpg">の中身を変更して別の画像に差し替えたりすることができる。

<!DOCTYPE html>
<html>
<head>
   <meta charset="utf-8" />
   <meta http-equiv="X-UA-Compatible" content="IE=edge">
   <title>Page Title</title>
   <meta name="viewport" content="width=device-width, initial-scale=1">
   <link rel="stylesheet" type="text/css" media="screen" href="main.css" />
</head>
<body>    
</body>
<script>
       // ここにJavaScriptコードを書いていく
</script>
</html>

<script>タグの中にJavaScriptを書くことで、HTMLを操作することができる。

まとめ

DOMとは、「JavaScriptによってHTMLを操作することができる仕組み」を指しているということが今回のキーワードでした。

この記事が気に入ったらサポートをしてみませんか?