【JavaScript入門】要素を追加する方法のまとめ

JavaScriptで要素を追加する方法についてまとめました。

要素の追加方法一覧

お急ぎの方は、次の表を参考にしてください。

No 追加位置 追加方法
1 指定した要素の前 親要素.insertBefore(追加する要素, 基準となる要素)
2 指定した要素の後 親要素.insertBefore(追加する要素, 基準となる要素.nextSibling)
3 親要素の最初の子要素 親要素.insertBefore(追加する要素, 親要素.firstChild)
4 親要素の最後の子要素 親要素.appendChild(追加する要素)

親要素.insertBefore(追加する要素, null)

追加方法の詳細

1. 指定した要素の前に追加する

ある要素の前に追加するには、次のように指定します。

書式
親要素.insertBefore(追加する要素, 基準となる要素)

サンプル
次のhtmlの 子要素3の前に子要素2を追加します。

html

JavaScript

追加後のhtml(子要素2が追加されました)

2. 指定した要素の後に追加する

要素を後に追加する場合も、insertBefore を使用します。

ん?後だから insertAfter では??と思ってしまいますが、残念ながら insertAfter というメソッドは存在しません。

書式
親要素.insertBefore(追加する要素, 基準となる要素.nextSibling)

サンプル
次のhtmlの 子要素1の後に子要素2を追加します。

html

javascript

追加後のhtml(子要素2が追加されました)

3. 親要素の最初の子要素を追加する

親要素の最初の子要素として、要素を追加する場合は insertBefore を使用します。

ポイントは、要素指定の際に、firstChild を指定します。

書式
親要素.insertBefore(追加する要素, 親要素.firstChild)

サンプル1
次のhtmlの 親要素div(id=”parent-div”)の最初の子要素(child-p1)を追加します。

html

javascript

追加後のhtml(子要素1が追加されました)

お気付きの方もいるかもしれませんが、上記の例の場合は、”1. 指定した要素の前に追加する”の insertBefore で指定要素を子要素2を指定した場合でも、同じことができます。

今回の親要素の firstChild が効果を発揮するのは、
動的に表示内容が変化し、親要素に子要素があったり無かったりする場合です。

サンプル2
親要素の子要素が無い場合に、親要素の子要素を追加します

html

javascript

追加後のhtml

このように、親要素が子要素を持っていない場合でも、firstChild を使用するとinsertBefore で子要素を追加することができます。

と、さらに上記の例の場合、”appendChild を使うと同じことができる” とお気付きの方もいらっしゃると思います。

今回使用した insertBeforeメソッドを使用して、親要素のfirstChildを用いる方法の利点は、親要素が子要素を持っている/ないに関わらず、必ず最初の子要素として追加できる点です。

appendChildメソッドの本来の動作は、”親要素の最後の子要素として追加する” なので、上記の例のように、親要素が子要素を持たない場合は、最初の子要素として追加されますが、もし子要素を持っていた場合は、最後の子要素として追加されるため、”最初の子要素として追加”という仕様が満たせません。

それでも、親要素が子要素を持っているかを調べて、appendChildとinsertBeforeを使い分ける方法もありますが・・・メンドイですよね。

なので、”要素を親要素の最初の子要素として追加する” という仕様の場合は、今回の方法をオススメします。

4. 親要素の最後の子要素を追加する

最後の子要素として追加する方法は、2つあります。

方法1
appendChildを使用する。

方法2
insertBeforeでnullを指定して使用する。

個人的には、方法1 をオススメします。理由は、appendChild vs insertBefore をご覧ください。

4-1. appendChild を使って最後の要素を追加する

書式
親要素.appendChild(追加する要素)

サンプル
次のhtmlの 親要素div(id=”parent-div”)の最後の子要素(child-p3)を追加します。

html

javascript

追加後のhtml

4-2. insertBefore を使って最後の要素を追加する

書式
親要素.insertBefore( 追加する要素, null )

サンプル
次のhtmlの 親要素div(id=”parent-div”)の最後の子要素(child-p3)を追加します。

html

4-1と同じです。

javascript

追加後のhtml

まとめ

要素の追加方法について記載しました。

どのケースでも、insertBeforeメソッドが使えるので便利ですね!

メソッド名に惑わされず? 要素の追加は、insertBefore メソッドがオススメです。

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする