カテゴリ: JavaScript 更新日: 2026/02/15

JavaScriptのDOMとは?基本概念と操作の流れを解説

JavaScriptのDOMとは?基本概念と操作の流れを解説
JavaScriptのDOMとは?基本概念と操作の流れを解説

先生と生徒の会話形式で理解しよう

生徒

「先生、JavaScriptでウェブページの内容を変えたり、ボタンを押したときに何か動作させたりするにはどうすればいいんですか?」

先生

「それには、JavaScriptのDOM操作という技術を使います。DOMを理解すれば、ウェブページを自由に操作できるようになりますよ。」

生徒

「DOMって何ですか?難しそうな言葉ですね...」

先生

「確かに最初は難しく感じるかもしれませんが、実はとてもシンプルな考え方なんです。まずはDOMの基本から一緒に学んでいきましょう!」

DOMとは何か?

<i class= DOMとは何か?" onerror="this.onerror=null; this.src='/img/view/java-exception-introduce.jpg';">
DOMとは何か?

DOM(ドム)とは、Document Object Modelの略称です。日本語に訳すと「文書オブジェクトモデル」という意味になります。

もう少しわかりやすく説明すると、DOMとはウェブページをJavaScriptから操作できるようにするための仕組みのことです。HTMLで書かれたウェブページを、JavaScriptが理解できる形に変換して、プログラムから自由に操作できるようにしてくれます。

身近な例えで理解しよう

DOMを身近なもので例えるなら、「家の設計図」のようなものです。

  • HTMLは、家を建てる設計図そのもの
  • DOMは、その設計図をプログラムが読み取れる形にしたもの
  • JavaScriptは、その設計図を見ながら家の中を改装したり、家具を配置したりする作業員

つまり、JavaScriptがウェブページの内容を変更したり、新しい要素を追加したりするときは、必ずDOMを通して行うということです。

DOMの構造を理解しよう

<i class= DOMの構造を理解しよう" onerror="this.onerror=null; this.src='/img/view/java-exception-introduce.jpg';">
DOMの構造を理解しよう

DOMは、ウェブページを木構造(ツリー構造)として表現します。これを「DOMツリー」と呼びます。

HTMLの例


<!DOCTYPE html>
<html>
<head>
    <title>私のページ</title>
</head>
<body>
    <h1>こんにちは</h1>
    <p>これはサンプルです。</p>
</body>
</html>

この簡単なHTMLは、DOMでは次のような木構造として表現されます。

  • html(根っこ)
    • head
      • title
        • 「私のページ」(テキスト)
    • body
      • h1
        • 「こんにちは」(テキスト)
      • p
        • 「これはサンプルです。」(テキスト)
ポイント:HTMLの各タグ(要素)が、DOMでは「ノード」という単位で管理されています。親子関係や兄弟関係で繋がっているイメージです。

DOM操作の基本的な流れ

<i class= DOM操作の基本的な流れ" onerror="this.onerror=null; this.src='/img/view/java-exception-introduce.jpg';">
DOM操作の基本的な流れ

JavaScriptでDOM操作を行うときは、基本的に次の流れで処理を進めます。

ステップ1:要素を取得する

まず、操作したいHTML要素をJavaScriptで取得します。これにはdocument.getElementById()document.querySelector()などのメソッドを使います。

ステップ2:要素を操作する

取得した要素に対して、テキストを変更したり、スタイルを変更したり、新しい要素を追加したりします。

ステップ3:結果が画面に反映される

JavaScriptでDOMを変更すると、その変更が自動的にブラウザの画面に反映されます。

実際にDOM操作をしてみよう

<i class= 実際にDOM操作をしてみよう" onerror="this.onerror=null; this.src='/img/view/java-exception-introduce.jpg';">
実際にDOM操作をしてみよう

それでは、実際に簡単なDOM操作のコードを見てみましょう。

HTMLの準備


<!DOCTYPE html>
<html>
<head>
    <title>DOM操作の練習</title>
</head>
<body>
    <h1 id="title">元のタイトル</h1>
    <button id="changeButton">タイトルを変更</button>
    
    <script src="script.js"></script>
</body>
</html>

JavaScriptのコード


// ボタン要素を取得
const button = document.getElementById('changeButton');

// ボタンがクリックされたときの処理
button.addEventListener('click', function() {
    // h1要素を取得
    const title = document.getElementById('title');
    
    // テキストを変更
    title.textContent = '新しいタイトル';
});

コードの解説

このコードでは、次のようなDOM操作を行っています。

  1. document.getElementById('changeButton')で、ボタン要素を取得
  2. addEventListenerで、ボタンがクリックされたときに実行する処理を登録
  3. ボタンがクリックされたら、getElementById('title')でh1要素を取得
  4. textContentプロパティを使って、テキストを「新しいタイトル」に変更
結果:ボタンをクリックすると、「元のタイトル」が「新しいタイトル」に変わります。

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

<i class= よく使うDOM操作のメソッド" onerror="this.onerror=null; this.src='/img/view/java-exception-introduce.jpg';">
よく使うDOM操作のメソッド

JavaScriptでDOM操作を行うときに、よく使われるメソッドをいくつか紹介します。

要素を取得するメソッド

メソッド 説明
getElementById() ID属性で要素を取得
querySelector() CSSセレクタで最初の要素を取得
querySelectorAll() CSSセレクタで全ての要素を取得

要素を操作するプロパティ

プロパティ 説明
textContent 要素のテキスト内容を取得・変更
innerHTML 要素のHTML内容を取得・変更
style 要素のスタイル(CSS)を変更

スタイルを変更する例

<i class= スタイルを変更する例" onerror="this.onerror=null; this.src='/img/view/java-exception-introduce.jpg';">
スタイルを変更する例

DOMを使えば、要素の見た目(スタイル)も変更できます。


<!DOCTYPE html>
<html>
<head>
    <title>スタイル変更</title>
</head>
<body>
    <p id="text">このテキストの色が変わります</p>
    <button id="colorButton">色を変更</button>
    
    <script>
        const colorButton = document.getElementById('colorButton');
        
        colorButton.addEventListener('click', function() {
            const text = document.getElementById('text');
            text.style.color = 'red';
            text.style.fontSize = '24px';
        });
    </script>
</body>
</html>

このコードでは、ボタンをクリックすると、段落のテキストが赤色になり、文字サイズが大きくなります。styleプロパティを使うことで、CSSのプロパティをJavaScriptから直接変更できます。

注意:CSSプロパティ名は、JavaScriptではfont-sizeではなくfontSizeのようにキャメルケース(単語の最初を大文字にする記法)で書きます。

新しい要素を追加する

<i class= 新しい要素を追加する" onerror="this.onerror=null; this.src='/img/view/java-exception-introduce.jpg';">
新しい要素を追加する

DOMでは、既存の要素を変更するだけでなく、新しい要素を作成してページに追加することもできます。


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

// テキストを設定
newParagraph.textContent = 'これは新しく追加された段落です';

// body要素に追加
document.body.appendChild(newParagraph);

実行結果


ページの最後に「これは新しく追加された段落です」という段落が表示されます。

このコードでは、次の手順で新しい要素を追加しています。

  1. document.createElement('p')で新しいp要素を作成
  2. textContentでテキストを設定
  3. appendChild()でbody要素の子要素として追加

DOMを使う際の注意点

<i class= DOMを使う際の注意点" onerror="this.onerror=null; this.src='/img/view/java-exception-introduce.jpg';">
DOMを使う際の注意点

JavaScriptの読み込み位置

JavaScriptでDOM操作を行うコードは、HTMLが読み込まれた後に実行する必要があります。そのため、scriptタグは通常、bodyタグの終わり近くに配置します。もしくは、次のようにDOMContentLoadedイベントを使います。


document.addEventListener('DOMContentLoaded', function() {
    // ここにDOM操作のコードを書く
    const title = document.getElementById('title');
    title.textContent = '変更されたタイトル';
});

この方法を使えば、scriptタグをhead内に配置しても、HTMLが完全に読み込まれてからコードが実行されるため安全です。

存在しない要素を取得しようとした場合

もし指定したIDの要素が存在しない場合、getElementById()nullを返します。そのため、要素が取得できたかどうかを確認してから操作するのが安全です。


const element = document.getElementById('myElement');

if (element) {
    // 要素が存在する場合のみ操作
    element.textContent = '変更しました';
} else {
    console.log('要素が見つかりませんでした');
}
関連記事:
カテゴリの一覧へ
新着記事
New1
TypeScript
TypeScriptでオブジェクト構造を定義するインターフェースの活用法
New2
JavaScript
JavaScriptのインストール方法まとめ!Windows・Mac・Linux別にステップ解説
New3
TypeScript
TypeScriptで非同期処理を扱う基本!Promise(プロミス)とasync/awaitを初心者向けに徹底解説
New4
TypeScript
TypeScriptの型に関するエラーの読み方と対処法|初心者でも理解できるエラーメッセージの意味
人気記事
No.1
Java&Spring記事人気No1
JavaScript
JavaScriptのインストール方法まとめ!Windows・Mac・Linux別にステップ解説
No.2
Java&Spring記事人気No2
TypeScript
TypeScriptのプロジェクトをtscでビルドする基本操作を解説!初心者にもわかるステップバイステップ
No.3
Java&Spring記事人気No3
JavaScript
JavaScriptで新しい要素を作成する方法(createElement, appendChildなど)
No.4
Java&Spring記事人気No4
JavaScript
JavaScriptで要素の属性を操作する方法を完全解説!初心者でもわかるDOM操作入門
No.5
Java&Spring記事人気No5
JavaScript
JavaScriptプログラムの実行方法まとめ!ブラウザ・Node.js・コンソールの使い方
No.6
Java&Spring記事人気No6
TypeScript
TypeScriptの始め方:開発環境の構築手順【初心者向け】
No.7
Java&Spring記事人気No7
TypeScript
TypeScriptの型エイリアス(type)とは?初心者でもわかる使い方と活用例
No.8
Java&Spring記事人気No8
TypeScript
TypeScriptのファイル分割とimport/exportの基本を徹底解説!初心者でも安心のやさしい入門