createElementメソッド
createElementメソッドは、
パラメータにタグ名を渡して新しい要素を作成することを可能にします。
作成後、要素は通常の要素として操作することができ、
またprepend、
append、
appendChild、
insertBefore
またはinsertAdjacentElement
メソッドを使用してページに追加することができます。
createElementの結果を変数に記録すると、
その変数には、
まるでquerySelector
やgetElementById
を通じて取得したかのような要素が格納されます。
唯一の違いは、私たちの要素はページに配置されていないことです。
それ以外は、innerHTMLを変更したり、属性を設定したり、
イベントハンドラーを追加したり、最終的にページに配置したりすることができます。
構文
document.createElement('タグ名');
例
段落を作成し、テキストを設定して、
ブロック#parentの末尾に配置してみましょう:
<div id="parent">
<p>1</p>
<p>2</p>
<p>3</p>
</div>
let parent = document.querySelector('#parent');
let p = document.createElement('p');
p.textContent = '!';
parent.appendChild(p);
コードの実行結果:
<div id="parent">
<p>1</p>
<p>2</p>
<p>3</p>
<p>!</p>
</div>
例
ulが与えられています。
その中に9個のliタグを配置し、
そのテキストを順序番号にしてみましょう:
<ul id="parent"></ul>
let parent = document.querySelector('#parent');
for (let i = 1; i <= 9; i++) {
let li = document.createElement('li');
li.textContent = i;
parent.appendChild(li);
}
コードの実行結果:
<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>
例
要素を挿入する際に、イベントハンドラーをバインドしてみましょう:
<ul id="parent"></ul>
let 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