JavaScriptでjQueryのappendメソッドを使わずにHTML要素を追加する方法を現役エンジニアが解説【初心者向け】
初心者向けにJavaScriptでjQueryのappendメソッドを使わずにHTML要素を追加する方法について現役エンジニアが解説しています。insertAdjacentHTMLメソッドを使うと指定した要素や子要素の直前や直後など好きな位置にテキストやHTML要素を追加することが出来ます。
テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日 調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名 調査手法:インターネット調査
JavaScriptでjQueryのappendメソッドを使わずにHTML要素を追加する方法について、TechAcademyのメンター(現役エンジニア)が実際のコードを使って初心者向けに解説します。
JavaScriptについてそもそもよく分からないという方は、JavaScriptとは何なのか解説した記事をまずご覧ください。
なお本記事は、TechAcademyのオンラインブートキャンプ、JavaScript/jQuery講座の内容をもとにしています。
今回は、JavaScriptに関する内容だね!
どういう内容でしょうか?
JavaScriptでjQueryのappendメソッドを使わずにHTML要素を追加する方法について詳しく説明していくね!
お願いします!
appendメソッドとは
appendメソッドは指定した子要素の最後に新たなテキストやHTML要素を追加するメソッドです。例えば、以下のようなHTMLがあり、pタグの中にテキストを追加したいような場合はこのようにします。
HTML
<p id="greet">こんにちは。</p>
JavaScript
$('#greet').append("ありがとう。");
insertAdjacentHTMLメソッドとは
insertAdjacentHTMLメソッドを使うと、指定した要素の直前、直後、子要素の最初、最後など好きな位置にテキストやHTML要素を追加することが出来ます。
insertAdjacentHTMLメソッドの使い方
insertAdjacentHTMLメソッドは以下のように使います。
element.insertAdjacentHTML(position, text);
第一引数に要素を追加する位置、第二引数にテキストやHTML要素を指定します。
positionには以下の4種類の位置を指定することが出来ます。
- beforebegin: 指定した要素の直前
- afterend: 指定した要素の直後
- afterbegin:指定した要素の子要素の最初
- beforeend;指定した要素の子要素の最後
HTML要素を追加する方法
insertAdjacentHTMLメソッドでHTML要素を追加するには、以下のように第二引数にHTML要素を指定してあげれば大丈夫です。
var insertHTML = "<span>おはようございます</span>" var greets = document.getElementById("greets"); greets.insertAdjacentHTML('beforebegin', insertHTML);
実際に書いてみよう
では実際にinsertAdjacentHTMLメソッドを使って、好きな位置にHTML要素を追加するプログラムを書いてみましょう。以下の例では4つの位置にHTML要素を追加しています。
HTML
<div id="japanese_greets"> <p>こんにちは</p> </div>
JavaScript
var ja_greets = document.getElementById("japanese_greets"); var ja_good_morning = "<p>おはようございます</p>"; var ja_good_evening = "<p>こんばんは</p>"; var en_greets = '<div id="english_greets"></div>'; var en_good_morning = "<p>Good morning</p>"; var en_hello = "<p>Hello</p>"; var en_good_evening = "<p>Good evening</p>"; // 日本語挨拶の追加 ja_greets.insertAdjacentHTML('afterbegin', ja_good_morning); ja_greets.getElementsByClassName("hello")[0].insertAdjacentHTML('afterend', ja_good_evening); // 英語挨拶ブロックの追加 ja_greets.insertAdjacentHTML('beforebegin', en_greets); var en_greets = document.getElementById('english_greets'); en_greets.insertAdjacentHTML('beforeend', en_good_morning); en_greets.insertAdjacentHTML('beforeend', en_hello); en_greets.insertAdjacentHTML('beforeend', en_good_evening);
こちらのプログラムでは、初期状態として日本語のあいさつの”こんにちは”のみがHTMLとして記述してあります。
ここにJavaScriptを使って日本語挨拶の”おはようございます”、”こんばんは”と英語挨拶の”Good morning”、”Hello”、”Good evening”を追加しています。
beforebegin, afterbegin, beforeend, afterendの4つの位置指定を使っていますので、どこでどのように指定すればいいかを確認してみてください。
まとめ
さて、今回のinsertAdjacentHTMLメソッドを使ったHTML要素の追加方法はいかがでしたでしょうか。
プログラミングでは1つの動作を実現するにも様々なメソッドや方法があります。
ご自分の作っているシステムやアプリケーションにはどのようなコードが合っているか、目的の機能は実現できるかなどを考慮しながら様々な方法を試してみると良いと思います。
筆者プロフィール
黒木一志(くろきかずし)
TechAcademyジュニアのゲームアプリコースを担当しています黒木です。 会社ではC#にて業務系アプリの開発を行っておりますが、過去にはCakePHP、Ruby on Railsを使ったWebアプリ開発を行っておりました。 プライベートではバンド演奏や本を読んだり映画を見たりしております。最近はスケボーにハマってます。 |
内容分かりやすくて良かったです!
ゆかりちゃんも分からないことがあったら質問してね!
分かりました。ありがとうございます!
TechAcademyでは、初心者でも、JavaScript・jQueryを使ったWebサービス公開を習得できる、オンラインブートキャンプを開催しています。
また、現役エンジニアから学べる無料体験も実施しているので、ぜひ参加してみてください。