要素に別の要素を追加する JavaScript
要素に別の要素を追加する
ベースとなるHTML
| 1 2 3 4 5 | <div class="target">  <div class="childs"></div>  <div class="childs"></div>  <div class="childs"></div> </div> | 
appendChild
targetの一番最後に追加する。
| 1 2 3 4 5 6 7 8 | const target = document.querySelector('.target'); const div = document.createElement('div'); div.setAttribute('class', 'childs'); const pTag = document.createElement('p'); pTag.innerText = `innerText`; div.appendChild(pTag); target.appendChild(div); // targetの'一番最後の'要素の'後に'追加。 | 
結果
| 1 2 3 4 5 6 7 8 | <div class="target">  <div class="childs"></div>  <div class="childs"></div>  <div class="childs"></div>  <div class="childs"> ← 一番最後の要素の後   <p>innerText</p>  </div> </div> | 
insertBefore
targetの任意の場所に追加する。
| 1 2 3 4 5 6 7 8 9 | const target = document.querySelector('.target'); const div = document.createElement('div'); div.setAttribute('class', 'childs'); const pTag = document.createElement('p'); pTag.innerText = `innerText`; div.appendChild(pTag); target.insertBefore(div, target.firstElementChild); // targetの'一番最初の'要素の'前に'追加。 | 
結果
target.insertBefore(div, null)ならappendChildと同じ結果になる。
| 1 2 3 4 5 6 7 8 | <div class="target">  <div class="childs"> ← 一番最初の要素の前   <p>innerText</p>  </div>  <div class="childs"></div>  <div class="childs"></div>  <div class="childs"></div> </div> | 
append (jQuery)
targetの一番最後に追加する。※JavascriptのappendChildに相当する
| 1 2 3 4 5 6 7 8 | const target = $('.target'); const div = $('<div>'); div.attr('class', 'childs'); const pTag = $('<p>'); pTag.text('innerText'); div.append(pTag); target.append(div); // targetの'一番最後の'要素の'後に'追加。 | 
結果
| 1 2 3 4 5 6 7 8 | <div class="target">  <div class="childs"></div>  <div class="childs"></div>  <div class="childs"></div>  <div class="childs"> ← 一番最後の要素の後   <p>innerText</p>  </div> </div> | 
appendTo (jQuery)
| 1 2 3 4 5 6 7 8 | const target = $('.target'); const div = $('<div>'); div.attr('class', 'childs'); const pTag = $('<p>'); pTag.text('innerText'); div.append(pTag); div.appendTo(target); // targetの'一番最後の'要素の'後に'追加。 | 
結果はappendと同じ。書き順が逆になるだけ。
| 1 2 3 | 親.append(子); 子.appendTo(親); | 
ただしこれの後にメソッドチェーンを続けて書くと、その影響を受ける対象が変わってくる。
| 1 2 3 | 親.append(子).hoge().fuga(); // .hoge().fuga()の対象は親になる。 子.appendTo(親).hoge().fuga(); // .hoge().fuga()の対象は子になる。 | 
コメント
コメントはありません。