【PHP8.x】closestメソッドの使い方
closestメソッドの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
closestメソッドは、Dom\Elementクラスのインスタンスに対して、指定されたCSSセレクタに一致する最も近い祖先要素を検索するメソッドです。
このメソッドは、現在の要素自身は含まず、その親要素からHTMLやXML文書の階層構造(DOMツリー)をルート要素に向かって上位に遡りながら探索を行います。引数として、一つ以上の要素にマッチする有効なCSSセレクタ文字列(例えば、タグ名を示す'div'、クラス名を示す'.my-class'、IDを示す'#my-id'など)を一つ受け取ります。
検索の結果、指定されたセレクタに最初に一致する祖先要素が見つかった場合、その要素を表すDom\Elementオブジェクトを返します。もし、DOMツリーのルート要素に到達するまでに一致する祖先要素が一つも見つからなかった場合は、nullを返します。
この機能は、特にユーザーインターフェースにおけるイベント処理の場面で非常に便利です。例えば、リスト内の複数のボタンにイベントリスナーを設定する際、どのボタンがクリックされたかに関わらず、そのボタンを含む親のリストアイテム要素を特定したい場合に活用できます。子要素から直接目的の祖先要素を効率的に取得できるため、複雑なDOM構造を持つウェブページで特定の要素を簡単に特定し、コードの可読性と保守性を向上させるのに役立ちます。これにより、DOMの要素間を移動する複雑なロジックを簡潔に記述できます。
構文(syntax)
1<?php 2 3$dom = new DOMDocument(); 4$element = $dom->createElement('span'); // Dom\Element クラスのインスタンスとして扱えます 5 6$selector = 'div.parent'; // 検索したいCSSセレクター(文字列) 7 8$closestElement = $element->closest($selector); // Dom\Element インスタンスまたは null が返されます 9 10?>
引数(parameters)
string $selectors
- string $selectors: 指定されたCSSセレクタに一致する、現在の要素から最も近い祖先要素(または自分自身)を指定する文字列
戻り値(return)
?Dom\Element
指定された要素、もしくはそれより上位の要素で、指定されたCSSセレクターに一致する最初の親要素を返します。一致する要素が見つからない場合はnullを返します。