【PHP8.x】closestメソッドの使い方
closestメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
closestメソッドは、Dom\HTMLElementクラスに属し、現在のHTML要素からDOMツリーを上方向にたどり、指定されたセレクタに一致する最も近い祖先要素を検索して取得するメソッドです。
このメソッドは、引数としてCSSセレクタ文字列を一つ受け取ります。例えば、.my-classやdiv, #my-idのようなセレクタを指定できます。現在の要素から親要素、さらにその親要素へと順に遡りながら、指定されたセレクタに合致する最初の要素を見つけると、その要素をDom\Elementオブジェクトとして返します。もし、DOMツリーのルートに到達しても指定されたセレクタに一致する祖先要素が見つからない場合は、nullを返します。
closestメソッドは、複雑なHTML構造の中で特定の親要素を効率的に見つけ出す際に非常に役立ちます。例えば、あるボタンがクリックされたときに、そのボタンを含む特定のクラス名を持つdiv要素全体に対して何か操作を行いたい場合などに利用できます。イベントが発生した要素から、イベントハンドラを割り当てたい対象の親要素を簡単に見つけ出すことが可能です。これにより、DOMツリー全体を巡回する複雑なロジックを自分で書く手間が省け、コードの可読性と保守性が向上します。PHPでWebページのDOM構造を操作する際に、開発者がより直感的かつ効率的に要素間の関係性を処理できるようサポートします。
構文(syntax)
1<?php 2 3$html = '<div class="ancestor"><p><span class="target"></span></p></div>'; 4$document = new Dom\Document(); 5$document->loadHTML($html); 6 7// Dom\HTMLElement のインスタンスを取得します 8$targetElement = $document->querySelector('span.target'); 9 10// closest メソッドを呼び出し、指定されたセレクタに一致する最も近い祖先要素を検索します 11$closestAncestor = $targetElement->closest('div.ancestor'); 12 13?>
引数(parameters)
string $selectors
- string $selectors: 指定するCSSセレクター文字列
戻り値(return)
?Dom\Element
指定された要素、またはその親要素の中から、条件に一致する最も近い祖先要素を返します。一致する要素が見つからなかった場合は null を返します。