要素の作成(createElement)の解説

1. 基本概要

createElementDOM API のメソッドで、新しい HTML 要素を動的に作成するために使用されます。例えば、JavaScript を用いて <div><p><button> などの要素を新しく生成し、ページに追加する際に使われます。

文法は以下の通りです:

javascript
document.createElement(tagName);
  • tagName: 作成する要素のタグ名を文字列で指定します。大文字・小文字は区別されませんが、慣例的に小文字を使います。

  • 戻り値は、新しく生成された 未配置状態の要素ノード です。この時点では DOM ツリーに追加されていません。


2. 使用の流れ

  1. 要素を作成する

    javascript
    const newDiv = document.createElement("div");

    → 新しい <div> 要素が作成されますが、まだ画面には表示されません。

  2. 属性や内容を設定する

    javascript
    newDiv.textContent = "Hello DOM!"; newDiv.className = "greeting";
  3. 既存の要素に追加する

    javascript
    document.body.appendChild(newDiv);

    → ページの body 内に <div class="greeting">Hello DOM!</div> が追加されます。


3. createElement と関連メソッド

  • createTextNode(text)
    テキストノードを作成する。createElement で作成した要素にテキストを入れる場合、textContent を使う方が簡単です。

  • appendChild(node)
    作成した要素を既存の DOM に追加します。

  • insertBefore(newNode, referenceNode)
    特定の要素の前に挿入できます。


4. 実例コード

以下の例では、ボタンを作成し、クリック時にアラートを表示するようにしています。

html
<!DOCTYPE html> <html> <head> <title>createElementの例</title> </head> <body> <script> // 新しいボタン要素を作成 const button = document.createElement("button"); // ボタンのテキストと属性を設定 button.textContent = "クリックしてください"; button.id = "myButton"; // イベントリスナーを追加 button.addEventListener("click", () => { alert("ボタンがクリックされました!"); }); // body に追加 document.body.appendChild(button); </script> </body> </html>

実行すると、ページにボタンが表示され、クリックするとアラートが表示されます。


5. 注意点

  • createElement で作成された要素は、明示的に DOM に追加するまで画面に表示されません

  • スクリプトの実行順によっては、まだ存在しない要素を参照してエラーが出ることがあります。その場合は DOMContentLoaded イベントや <script defer> を利用すると良いです。

  • 動的に大量の要素を作成する場合は、DocumentFragment を活用すると効率的に追加できます。

ChatGPT5 生成日:2025/09/11