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
。
您可以使用 getAttribute()
方法检索 HTML 元素属性,class
是这些属性之一。该方法将 return 属性的字符串值,因此您需要手动检查其他 classes。当然,你可以轻松扩展simple_html_dom
class并添加一个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);
}
我有一个 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
。
您可以使用 getAttribute()
方法检索 HTML 元素属性,class
是这些属性之一。该方法将 return 属性的字符串值,因此您需要手动检查其他 classes。当然,你可以轻松扩展simple_html_dom
class并添加一个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);
}