JavaScript

【JavaScript】任意の場所に要素を追加する方法

JavaScriptで任意の場所に要素を追加する方法について記述します。
要素(element)の前後に新たに要素を追加したいと思う場面はあるかと思います。
JavaScriptで要素に変更を加える場合、innerHTMLでも変更することは可能ですが
既存の要素に影響がでる可能性があります。

element.insertAdjacentHTMLを利用することで、
innerHTMLよりも安全に要素を追加することが可能です。

ソースコード

<button onClick="beforebegin()" class="red" id="bb">①element外(前)</button>
<button onClick="afterbegin()" class="blue" id="ab">②element内(前)</button>
<button onClick="beforeend()" class="green" id="be">③element内(後)</button>
<button onClick="afterend()" class="yellow" id="ae">④element外(後)</button>
<p>
    <!-- ①element外(前) -->
    <span id="main">
        <!-- ②element内(前) -->
        本文
        <!-- ③element内(後) -->
    </span>
    <!-- ④element外(後) -->
</p>

.red { background-color:rgba(255,0,0,0.3); }
.blue { background-color:rgba(0,0,255,0.3); }
.green { background-color:rgba(0,128,0,0.3); }
.yellow { background-color:rgba(255,255,0,0.3); }

// 対象要素
var main = document.getElementById('main');
// ①element外(前)用
function beforebegin(){
    main.insertAdjacentHTML('beforebegin', '<span class="red">タブ外先頭</span><br>');
}
// ②element内(前)用
function afterbegin(){
    main.insertAdjacentHTML('afterbegin', '<span class="blue">タブ内先頭</span><br>');
}
// ③element内(後)用
function beforeend(){
    main.insertAdjacentHTML('beforeend', '<br><span class="green">タブ内末尾</span>');
}
// ④element外(後)用
function afterend(){
    main.insertAdjacentHTML('afterend', '<br><span class="yellow">タブ外末尾</span>');
}

サンプル

See the Pen HTML_insert by alunote (@alunote) on CodePen.

説明は以上となります。
この記事が誰かの助けになれば幸いです。