icon
icon

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

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

テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日  調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名  調査手法:インターネット調査

監修してくれたメンター

永井浩平

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

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

目次

1時間でできる無料体験!

そもそも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のタグの直後に挿入します。

 

コラム

コスパとタイパ、両方結果的に良くなる良くなる学び方とは?

「スクールは高いし時間も縛られて効率が悪い」と考える方は多いと思います。
もちろん、時間も費用もかかることは間違いありません。
ただ 結果的に無駄な学びにお金も時間もかける方がリスクが高いという考えもあります。

コスパ・タイパ最適化の参考として、 テックアカデミー卒業生がスクールを選んだ理由 をご紹介します。

  • ・困ったときに、質問や相談できる相手がいるため挫折しなかった
  • ・プロとして必要なスキルのみを深く学べたので無駄がなかった
  • ・副業案件の提供と納品までのサポートがあったので目的を達成できた

安価・短期間で広く浅く学んでも意味がありません。 本当に自分の目的が達成できるか、それが重要です。
自分にどのスキルや学び方が合っているか、どんな学習方法かなど、お気軽に 無料相談 に参加してみませんか?

カウンセラー・現役のプロへ、何でも気軽に無料相談可能。 30分か60分お好きな時間が選べて、かつ3回まで すべて無料で ご利用できます。
無理な勧誘は一切ない ので、お気軽にご参加ください。

今なら相談した方限定の割引・参加特典付き! 無料相談はこちら

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が便利です。

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

 

1時間でできる無料体験!

実際に書いてみよう

以下のような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サービス開発を学べます。

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

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

初心者・未経験でもできる。まずはテックアカデミーに相談しよう

プログラミングを独学で学習していて、このように感じた経験はないでしょうか?

  • ・調べてもほしい情報が見つからない
  • ・独学のスキルが実際の業務で通用するのか不安
  • ・目標への学習プランがわからず、迷子になりそう

テックアカデミーでは、このような 学習に不安を抱えている方へ、マンツーマンで相談できる機会を無料で提供 しています。
30分間、オンラインでどんなことでも質問し放題です。

「受けてよかった」と感じていただけるよう カウンセラーやエンジニア・デザイナー があなたの相談に真摯に向き合います。

「自分に合っているか診断してほしい」
「漠然としているが話を聞いてみたい」

こんなささいな悩みでも大丈夫です。

無理な勧誘は一切ありません ので、まずはお気軽にご参加ください。
※体験用のカリキュラムも無料で配布いたします。(1週間限定)

今なら参加者限定の割引特典付き! 無料相談を予約する