createElementメソッド

createElementメソッドは、 パラメータにタグ名を渡して新しい要素を作成することを可能にします。 作成後、要素は通常の要素として操作することができ、 またprepend、 append、 appendChild、 insertBefore またはinsertAdjacentElement メソッドを使用してページに追加することができます。

createElementの結果を変数に記録すると、 その変数には、 まるでquerySelector やgetElementById を通じて取得したかのような要素が格納されます。 唯一の違いは、私たちの要素はページに配置されていないことです。 それ以外は、innerHTMLを変更したり、属性を設定したり、 イベントハンドラーを追加したり、最終的にページに配置したりすることができます。

構文

javascriptdocument.createElement('タグ名');

例

段落を作成し、テキストを設定して、 ブロック#parentの末尾に配置してみましょう:

html<div id="parent">
  <p>1</p>
  <p>2</p>
  <p>3</p>
</div>
javascriptlet parent = document.querySelector('#parent');

let p = document.createElement('p');
p.textContent = '!';

parent.appendChild(p);

コードの実行結果:

html<div id="parent">
  <p>1</p>
  <p>2</p>
  <p>3</p>
  <p>!</p>
</div>

例

ulが与えられています。 その中に9個のliタグを配置し、 そのテキストを順序番号にしてみましょう:

html<ul id="parent"></ul>
javascriptlet parent = document.querySelector('#parent');

for (let i = 1; i <= 9; i++) {
  let li = document.createElement('li');
  li.textContent = i;
  parent.appendChild(li);
}

コードの実行結果:

html<ul id="parent">
  <li>1</li>
  <li>2</li>
  <li>3</li>
  <li>4</li>
  <li>5</li>
  <li>6</li>
  <li>7</li>
  <li>8</li>
  <li>9</li>
</ul>

例

要素を挿入する際に、イベントハンドラーをバインドしてみましょう:

html<ul id="parent"></ul>
javascriptlet parent = document.querySelector('#parent');

for (let i = 1; i <= 9; i++) {
  let li = document.createElement('li');
  li.textContent = i;
  
  li.addEventListener('click', function() {
    alert(this.textContent);
  });
  
  parent.appendChild(li);
};

Результат:

関連項目

  • 要素をクローンできるメソッド cloneNode
  • 新しいテキストノードを作成できるメソッド createTextNode