JavaScript

最終更新日:
公開日:

レシピ

HTML・DOM

特定のHTML要素の前後、または内側に新しいHTML要素を追加する

特定のHTML要素の前後、または内側の先頭/末尾に新しくHTML要素を追加する方法について解説します。

この記事のポイント

  • insertAdjacentHTMLメソッドは文字列のHTMLを渡して使用する
  • 特定のHTML要素の直前にHTMLを追加するときはbeforebegin、直後はafterendを指定する
  • 特定のHTML要素内の先頭にHTMLを追加するときはafterbegin、末尾はbeforeendを指定する

目次

起点にしたHTML要素の前後か内側に新しくHTML要素を追加する

JavaScriptでinsertAdjacentHTMLメソッドを使うと、特定のHTML要素を起点にして新しくHTML要素を追加(挿入)することができます。

insertAdjacentHTMLメソッドは特定のHTML要素に対して前、後、子孫要素の先頭、子孫要素の末尾のいずれかの場所に第2パラメータで指定したHTMLを追加することができます。
ただし、第2パラメータに指定できるのは文字列のみのため、追加したいHTML要素がElementオブジェクトの場合はouterHTMLを使って文字列に変換する等の対策が必要です。

コード例

// 1.起点にするHTML要素を取得
const btn = document.getElementById("btn");

// 2.追加するHTML要素を作成
let p_element = document.createElement('p');
p_element.textContent = 'OK';

// 3.指定した場所にHTML要素を追加
btn.insertAdjacentHTML( 'beforebegin', p_element.outerHTML);

insertAdjacentHTMLメソッドの第1パラメータで指定する「追加する場所」は以下の4種類のいずれかを文字列で指定します。

追加する場所
beforebegin要素の直前に新しい要素を追加
afterend要素の直後に新しい要素を追加
afterbegin要素の内部の先頭に新しい要素を追加
beforeend要素の内部の末尾に新しい要素を追加

それぞれの値を指定した例を解説していきますが、今回は例として以下のindex.htmlにあるsection要素を起点にして新しくp要素を追加します。

index.html

<main>
	<article>
		<header>
			<h1>記事のタイトル</h1>
			<p>この記事はJavaScriptを確認するために書いています。</p>
		</header>
		<section id="section1">
			<h2>1章 親要素を探す</h2>
			<p>JavaScriptを使って指定した親要素を探し、取得することができます。</p>
		</section>
	</article>
</main>

HTML要素の直前に追加する

第1パラメータにbeforebeginを指定して、起点になるHTML要素の直前にp要素を追加します。

コード例

// 1.起点にするHTML要素を取得
const btn = document.getElementById("btn");

// 2.追加するHTML要素を作成
let p_element = document.createElement('p');
p_element.textContent = 'OK';

// 3.HTML要素を追加する場所を指定
btn.insertAdjacentHTML( 'beforebegin', p_element.outerHTML);

実行すると、以下の場所にp要素が追加されます。

index.html

<main>
	<article>
		<header>
			<h1>記事のタイトル</h1>
			<p>この記事はJavaScriptを確認するために書いています。</p>
		</header>
		<p>テキストを追加してみる</p>
		<section id="section1">
			<h2>1章 親要素を探す</h2>
			<p>JavaScriptを使って指定した親要素を探し、取得することができます。</p>
		</section>
	</article>
</main>

HTML要素の直後に追加する

第1パラメータにafterendを指定して、起点になるHTML要素の直後にp要素を追加します。

コード例

// 1.起点にするHTML要素を取得
const btn = document.getElementById("btn");

// 2.追加するHTML要素を作成
let p_element = document.createElement('p');
p_element.textContent = 'OK';

// 3.HTML要素を追加する場所を指定
btn.insertAdjacentHTML( 'afterend', p_element.outerHTML);

実行すると、以下の場所にp要素が追加されます。

index.html

<main>
	<article>
		<header>
			<h1>記事のタイトル</h1>
			<p>この記事はJavaScriptを確認するために書いています。</p>
		</header>
		<section id="section1">
			<h2>1章 親要素を探す</h2>
			<p>JavaScriptを使って指定した親要素を探し、取得することができます。</p>
		</section>
		<p>テキストを追加してみる</p>
	</article>
</main>

HTML要素の内側の先頭に追加する

第1パラメータにafterendを指定して、起点になるHTML要素の内側の先頭にp要素を追加します。

コード例

// 1.起点にするHTML要素を取得
const btn = document.getElementById("btn");

// 2.追加するHTML要素を作成
let p_element = document.createElement('p');
p_element.textContent = 'OK';

// 3.HTML要素を追加する場所を指定
btn.insertAdjacentHTML( 'afterbegin', p_element.outerHTML);

実行すると、以下の場所にp要素が追加されます。

index.html

<main>
	<article>
		<header>
			<h1>記事のタイトル</h1>
			<p>この記事はJavaScriptを確認するために書いています。</p>
		</header>
		<section id="section1">
			<p>テキストを追加してみる</p>
			<h2>1章 親要素を探す</h2>
			<p>JavaScriptを使って指定した親要素を探し、取得することができます。</p>
		</section>
	</article>
</main>

HTML要素の内側の末尾に追加する

第1パラメータにbeforeendを指定して、起点になるHTML要素の内側の末尾にp要素を追加します。

コード例

// 1.起点にするHTML要素を取得
const btn = document.getElementById("btn");

// 2.追加するHTML要素を作成
let p_element = document.createElement('p');
p_element.textContent = 'OK';

// 3.HTML要素を追加する場所を指定
btn.insertAdjacentHTML( 'beforeend', p_element.outerHTML);

実行すると、以下の場所にp要素が追加されます。

index.html

<main>
	<article>
		<header>
			<h1>記事のタイトル</h1>
			<p>この記事はJavaScriptを確認するために書いています。</p>
		</header>
		<section id="section1">
			<h2>1章 親要素を探す</h2>
			<p>JavaScriptを使って指定した親要素を探し、取得することができます。</p>
			<p>テキストを追加してみる</p>
		</section>
	</article>
</main>