php8.5
Home/ Manual/ dom / element/ Dom\Element::getElementsByClassName

Dom\Element::getElementsByClassName

PHP function Edit on GitHub ✎

Returns a collection of descendant elements that have the given classes

Description

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

Returns a Dom\HTMLCollection of the descendants of this element, in document order, whose class attribute contains all the classes given in classNames. The element itself is never part of the collection.

Parameters

classNames

One or more class names separated by ASCII whitespace. An element only matches if it has every one of these classes, in any order.

Class names are compared case-sensitively, unless the document is in quirks mode, in which case the comparison is ASCII case-insensitive.

Return Values

Returns a Dom\HTMLCollection of the matching elements. The collection is empty if no element matches, or if classNames contains no class name, for example when it is an empty string or only whitespace.

Errors/Exceptions

Throws a ValueError if classNames contains a null byte.

Examples

Dom\Element::getElementsByClassName example

php
<?php

$dom = Dom\HTMLDocument::createFromString(
    '<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";

The above example will output:

output
One
2

See Also

Source: reference/dom/dom/element/getelementsbyclassname.xml · from the official PHP manual (php/doc-en)