JavaScriptでinsertAdjacentHTMLメソッドを使ってHTML要素を追加する方法を現役エンジニアが解説【初心者向け】

初心者向けにJavaScriptでinsertAdjacentHTMLメソッドを使ってHTML要素を追加する方法について現役エンジニアが解説しています。insertAdjacentHTMLメソッドとはHTMLのElementに対してHTML要素を差し込むことができるメソッドです。

テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。

監修してくれたメンター

永井浩平

BtoBtoC事業を行っている会社で社内SEとして勤務。
バックエンド、フロント、クラウドなど幅広く業務を行う。
テックアカデミーでは、フロントエンドコース / Javaコースのメンター。

JavaScriptでinsertAdjacentHTMLメソッドを使ってHTML要素を追加する方法について、テックアカデミーのメンター(現役エンジニア)が実際のコードを使用して初心者向けに解説します。

目次

そもそもJavaScriptについてよく分からないという方は、JavaScriptとは何なのかについて解説した記事を読むとさらに理解が深まります。

 

田島悠介

今回は、JavaScriptに関する内容だね!

大石ゆかり

どういう内容でしょうか?

田島悠介

JavaScriptでinsertAdjacentHTMLメソッドを使ってHTML要素を追加する方法について詳しく説明していくね!

大石ゆかり

お願いします!

 

はじめに

JavaScriptからHTML要素を挿入して、ブラウザ表示する方法を説明します。

今回はJavaScriptからHTML要素を追加するために、insertAdjacentHTMLメソッドを使います。

HTML要素をユーザー操作などによって追加できるので、動きのあるサイトを作成できます。

また、URL(ページ)遷移をしない、SPA(Single Page Application)の作成などの際にとても便利です。

ぜひこの機会に実装方法を覚えておきましょう。

 

insertAdjacentHTMLメソッドとは

HTMLの要素などを表すElementのメソッドで、呼び出し元のElementに対してHTMLを差し込むことができます。

画面に新しいHTML要素を追加する場合によく使うメソッドです。

 

[PR] フロントエンドで挫折しない学習方法を動画で公開中

insertAdjacentHTMLメソッドの使い方

HTMLを差し込む基準になるElementに対して、.insertAdjacentHTML()と記述することで使えます。

第1引数に差し込む位置の指定をする文字列、第2引数に差し込むHTMLを渡します。

 

第1引数の差し込み位置の指定は、下記の4種類あります。

HTMLを差し込みたい位置を指定するように、いずれかの文字列を第1引数に指定してください。

1、beforebegin
Elementのタグの直前に挿入します。

2、afterbegin
Elementタグの中の先頭に挿入します。

3、beforeend
Elementタグの中の末尾に挿入します。

4、afterend
Elementのタグの直後に挿入します。

 

HTML要素を追加する方法

insertAdjacentHTMLメソッドを使って、第2引数にHTMLソースを記述します。

以下、id名称がmainHeaderというdivタグ内の先頭にHTML要素を追加例です。

const header = ducument.getElementById('mainHeader');
header.insertAdjacentHTML('afterbegin','<h2>追加要素</h2>');

 

insertAdjacentHTMLメソッドとinnerHTMLプロパティの違い

HTMLの要素を編集するメソッドには、他にinnerHTMLというプロパティもあります。

innerHTMLはHTMLを上書きするために使います。
insertAdjacentHTMLは要素の追加のために使います。

例えば、特定のElementの中をてっとり早くまるごと消すような場合は、innerHTMLに空文字を代入することで実現できます。

最初に挿入したり最後に挿入したりする場合は、位置が指定できるinsertAdjacentHTMLが便利です。

用途によって使い分けられるようにしましょう。

 

実際に書いてみよう

以下のようなHTMLを用意します。

<html>
    <head>
    </head>
    <body>
        <h2 id="firstView">初期表示要素</h2>
    </body>
</html>

 

ここに、id名称がfirstViewのh2タグを中心に、要素を追加する処理を実装していきましょう。

window.onload = function() {
    /*タグを挿入するオブジェクトを取得*/
    const firstViewElement = document.getElementById('firstView');
    firstViewElement.insertAdjacentHTML('beforebegin','<h2>beforebegin追加要素</h2>');
    firstViewElement.insertAdjacentHTML('afterbegin','【afterbegin追加要素】');
    firstViewElement.insertAdjacentHTML('beforeend','【beforeend追加要素】');
    firstViewElement.insertAdjacentHTML('afterend','<h2>afterend追加要素</h2>');
};

 

もとのHTMLでは下記h2タグの表示だけです。

 

けれど、onloadイベントが発生した際には、下記画像のように要素が追加されて画面表示されます。

またHTMLの構成をデベロッパーツールで確認すると、下記のようにh2タグや文字列が追加されていることが確認できます。

<html>
    <head>
    </head>
    <body>
        <h2>beforebegin追加要素</h2>
        <h2 id="firstView">【afterbegin追加要素】初期表示要素【beforeend追加要素】</h2>
        <h2>afterend追加要素</h2>
    </body>
</html>

まとめ

今回紹介したinsertAdjacentHTMLは、画面の表示をJavaScriptで操作する際に使うことの多いメソッドです。

第1引数で挿入位置を指定する文字列は、リファレンスで確認しながら使えばよいので、覚える必要はありません。

都度、調べながら使ってみてください。

また、今回はloadイベントにひもづけて要素を追加しましたが、ボタン操作や各関数からもHTML要素を追加できます。

ぜひSPAや動きのあるサイト作成の際には活用してみてください。

 

大石ゆかり

内容が分かりやすくて良かったです!

田島悠介

ゆかりちゃんも分からないことがあったら質問してね!

大石ゆかり

分かりました。ありがとうございます!

 

JavaScriptを学習中の方へ

これで解説は終了です、お疲れさまでした。

  • つまずかず「効率的に」学びたい
  • 副業や転職後の「現場で使える」知識やスキルを身につけたい

プログラミングを学習していて、このように思ったことはありませんか?

テックアカデミーのフロントエンドコースでは、第一線で活躍する「プロのエンジニア」が教えているので、効率的に実践的なスキルを完全オンラインでしっかり習得できます。

合格率10%の選考を通過した、選ばれたエンジニアの手厚いサポートを受けながら、JavaScript・jQueryを使ったWebサービス開発を学べます。

まずは一度、無料体験で学習の悩みや今後のキャリアについて話してみて、「現役エンジニアから教わること」を実感してみてください。

時間がない方、深く知ってから体験してみたい方は、今スグ見られる説明動画から先に視聴することをおすすめします!