Simple- HTML -DOM: ищете метод hasClass () (или список классов)? - PullRequest
0 голосов
/ 03 апреля 2020

У меня есть список div с различными классами. Скажем:

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

Я получаю эти div s $res = $DOM->find('div.a') Как я могу определить, есть ли у div другой класс b?

Как и if ($res->hasClass('b')) { /*do ...*/ }

Я также заметил, что есть методы hasAttribute() и getAttribute(), но они не совсем помогают мне, так как мне нужно проверить класс, который сам атрибут.

Примечание: я не хочу выбирать напрямую через класс b.

Ссылка: https://simplehtmldom.sourceforge.io/manual_api.htm

1 Ответ

1 голос
/ 03 апреля 2020

Вы можете получить HTML атрибуты элемента, используя метод getAttribute(), и class является одним из этих атрибутов. Метод вернет строковое значение атрибута, поэтому вам нужно вручную проверить другие классы. Конечно, вы можете легко расширить класс simple_html_dom и добавить метод 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);
}
...