【PHP8.x】insertAdjacentElementメソッドの使い方

insertAdjacentElementメソッドの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

insertAdjacentElementメソッドは、Dom\HTMLElementオブジェクト(HTML要素)を基準に、別の要素をDOMツリー内の特定の位置に挿入する機能を提供します。

このメソッドは二つの引数を取ります。第一引数$whereは文字列型で、要素をどこに挿入するかを指定します。指定できる値は以下の通りです。

  • 'beforebegin': 呼び出し元の要素の開始タグの直前、つまり呼び出し元要素と同じ階層でその前に挿入します。
  • 'afterbegin': 呼び出し元の要素の開始タグの直後、つまり呼び出し元要素の最初の子として挿入します。
  • 'beforeend': 呼び出し元の要素の終了タグの直前、つまり呼び出し元要素の最後の子として挿入します。
  • 'afterend': 呼び出し元の要素の終了タグの直後、つまり呼び出し元要素と同じ階層でその後に挿入します。

第二引数$elementDom\Element型のオブジェクトで、実際にDOMツリーに挿入したい要素を指定します。

メソッドが要素の挿入に成功した場合、挿入された要素自身(Dom\Elementオブジェクト)が返されます。もし挿入が失敗した場合はnullが返されます。

このメソッドは、従来のappendChildinsertBeforeといったDOM操作メソッドでは直接実現できない、より細かな位置での要素挿入を可能にします。Webアプリケーションにおいて、既存のHTML要素の前後や内部に動的に新しい要素を追加したい場合などに非常に有用です。

構文(syntax)

1<?php
2
3// Dom\HTMLDocument のインスタンスを作成
4$document = new Dom\HTMLDocument();
5$document->loadHTML('<div></div>');
6
7// 親となる Dom\HTMLElement のインスタンスを取得
8$parentElement = $document->getElementsByTagName('div')[0];
9
10// 挿入する Dom\Element のインスタンスを作成
11$newElement = $document->createElement('span', '挿入する要素');
12
13// insertAdjacentElement メソッドの呼び出し構文
14// $where: 挿入位置 ('beforebegin', 'afterbegin', 'beforeend', 'afterend' のいずれか)
15// $element: 挿入する Dom\Element オブジェクト
16$insertedElement = $parentElement->insertAdjacentElement('afterbegin', $newElement);
17
18?>

引数(parameters)

Dom\AdjacentPosition $where, Dom\Element $element

  • Dom\AdjacentPosition $where: 要素を挿入する相対的な位置を指定します。beforebeginafterbeginbeforeendafterend のいずれかの値をとります。
  • Dom\Element $element: 挿入するDom\Elementオブジェクトを指定します。

戻り値(return)

Dom\Element|false

指定された位置に要素を挿入し、成功した場合は挿入された要素、失敗した場合はfalseを返します。

関連コンテンツ

関連プログラミング言語