PHP 8.6.0RC7 available for testing

Dom\Element::getElementsByClassName

(No version information available, might only be in Git)

Dom\Element::getElementsByClassName — 指定したクラスを持つ子孫要素の集合を返す

説明

public function Dom\Element::getElementsByClassName(string $classNames): Dom\HTMLCollection

この要素の子孫のうち、class 属性に classNames で指定したクラスをすべて含む要素を、 ドキュメント内に現れる順に並べた Dom\HTMLCollection を返します。 この要素自身が含まれることはありません。

パラメータ

classNames

ASCII 空白文字で区切った、ひとつ以上のクラス名。 要素は、これらのクラスをすべて持つ場合のみマッチします。 クラスの順番は問いません。

クラス名は大文字小文字を区別して比較します。 ただし、ドキュメントが後方互換モード (quirks mode) の場合、 ASCII 文字の範囲で大文字小文字を区別せず比較します。

戻り値

マッチした要素の Dom\HTMLCollection を返します。 マッチする要素がない場合や、classNames にクラス名がひとつも含まれない場合 (空文字列や、空白文字だけの文字列など)、 集合は空になります。

エラー / 例外

classNames にヌルバイトが含まれている場合、 ValueError がスローされます。

例

例1 Dom\Element::getElementsByClassName() の例

<?php

$dom = Dom\HTMLDocument::createFromString(
    '<!DOCTYPE html><body><div id="list">'
        . '<p class="item new">One</p>'
        . '<p class="item">Two</p>'
        . '<p class="Item">Three</p>'
        . '</div></body>',
    LIBXML_NOERROR
);

$list = $dom->getElementById('list');

foreach ($list->getElementsByClassName('new  item') as $element) {
    echo $element->textContent, "\n";
}

echo $list->getElementsByClassName('item')->length, "\n";

上の例の出力は以下となります。

One
2

参考

+add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top