JavaScriptのcreateElement()で要素を生成してDOMに追加するということがよくあるので、個人的によくある要素追加パターンをいくつか紹介してみます。
divを生成する
divを生成して、classを追加してからDOMに追加してみます。
#wrapperにdivを追加します。
HTML
<div id="wrapper"></div>
追加するdivに適用するCSSを用意しておきます。
CSS
.sample { width: 100px; height: 100px; background: red; }
JavaScriptでdivを生成して、DOMに追加します。
JavaScript
// div要素を生成 var div = document.createElement('div'); // classを追加 div.className = 'sample'; // 生成したdiv要素を追加する document.getElementById('wrapper').appendChild(div);
divを追加することができました。
divを追加するデモページ
imgを生成する
次にimgを追加してみます。
HTMLは先ほどと同じなので省略します。
JavaScript
// img要素を生成 var img = document.createElement('img'); // 画像パスを追加 img.src = './image.jpg'; // altを追加 img.alt = '風景の画像です。'; // 生成したimg要素を追加する document.getElementById('wrapper').appendChild(img);
imgを生成してから画像パスとaltを追加して、DOMに追加しています。
imgを追加するデモページ
videoを生成する
videoやaudioなども基本的には同じ形で追加できます。
今回はvideoを追加してみます。
JavaScript
// video要素を生成 var video = document.createElement('video'); // パスを追加 video.src = './movie.mp4'; // インターフェースを追加 video.controls = true; // ループを設定 video.loop = true; // 生成したvideo要素を追加する document.getElementById('wrapper').appendChild(video);
videoのパスとインターフェース、ループを設定して追加しました。
videoを追加するデモページ
divとimgを生成して、div内にimgを追加する
次は形を少し変えて、divとimgを生成して、divの中にimgを追加してからDOMに追加してみます。
JavaScript
// div要素を生成 var div = document.createElement('div'); // classを追加 div.className = 'sample'; // img要素を生成 var img = document.createElement('img'); // 画像パスを追加 img.src = './image.jpg'; // altを追加 img.alt = 'ふうけい'; // img要素をdiv要素の子要素に追加 div.appendChild(img); // 生成したdiv要素を追加する document.getElementById('wrapper').appendChild(div);
divとimgの生成は前述のサンプルと同じで、divの中にimgを追加するのはappendChild()を使っています。
divとimgを追加するデモページ
tableを生成する
最後に複数の要素を使用しているtableを生成してみます。
JavaScript
// table要素を生成 var table = document.createElement('table'); // tr部分のループ for (var i = 0; i < 3; i++) { // tr要素を生成 var tr = document.createElement('tr'); // th・td部分のループ for (var j = 0; j < 3; j++) { // 1行目のtr要素の時 if(i === 0) { // th要素を生成 var th = document.createElement('th'); // th要素内にテキストを追加 th.textContent = i + '-' + j; // th要素をtr要素の子要素に追加 tr.appendChild(th); } else { // td要素を生成 var td = document.createElement('td'); // td要素内にテキストを追加 td.textContent = i + '-' + j; // td要素をtr要素の子要素に追加 tr.appendChild(td); } } // tr要素をtable要素の子要素に追加 table.appendChild(tr); } // 生成したtable要素を追加する document.getElementById('wrapper').appendChild(table);
for文でtable内のtr、tr内のth/tdを回して生成しています。
tableを追加するデモページ
【参考サイト】
コメントが承認されるまで時間がかかります。