Simple-HTML-DOM:正在寻找 hasClass() 方法(或 类 的列表)?

Simple-HTML-DOM: looking for a hasClass() method (or list of classes)?

我有一个 div 列表,其中包含不同的 class。比方说:

<div class="a">A</div>
<div class="a b">A&B</div>
<div class="a">A</div>

我通过 $res = $DOM->find('div.a') 获得了这些 div 我如何确定 div 是否也有另一个 class b

喜欢if ($res->hasClass('b')) { /*do ...*/ }

我还注意到有 hasAttribute()getAttribute() 方法,但它们对我帮助不大,因为我需要检查 class,它本身就是一个属性.

注意:我不想 select 直接通过 class b

参考:https://simplehtmldom.sourceforge.io/manual_api.htm

您可以使用 getAttribute() 方法检索 HTML 元素属性,class 是这些属性之一。该方法将 return 属性的字符串值,因此您需要手动检查其他 classes。当然,你可以轻松扩展simple_html_domclass并添加一个hasClass方法:

$src =<<<src
<div class="a">A</div>                                                                                                                                                   
<div class="a b">A&B</div>
<div class="a">A</div>
src;

$html = str_get_html($src);

foreach($html->find('.a') as $a) 
{
    // put all element classes in an array
    $classes = explode(' ', $a->getAttribute('class'));
    print $a . " has following css classes: ";
    print_r($classes);
}