PHP Simple HTML DOM Parser: check elements with multiple classes

Get the information from this link:

http://stackoverflow.com/questions/14264525/php-simple-html-dom-parser-select-only-divs-with-multiple-classes

Simple answer:

find(".class1.class2")

this will look for any type of element (div,img,a etc..) that has both class1 and class2. If you want to specify the type of element to match add it to the beginning without a . like:

find("div.class1.class2")

If you have a space between the two specified classes it will match elements with both the classes or elements nested in the element with the first class:

find(".class1 .class2")

will match

<divclass="class1"><divclass="class2">this will be returned</div></div>

or

<divclass="class1 class2">this will be returned</div>

edit: I tried your code and found that the solutions above do not work. The solution that does work however is as follows:

$html->find("div[class=class1 class2]")

EDIT2: As this is a bug in the dom parser, there is no simple way of doing this. Solution I could think of:

$find = $html->find(".class1");
$ret = array();
foreach($find as $element){
if(strpos($element->class,‘class3‘)!==false){ $ret[]= $element;
}
} $find = $ret;

basically you find all the elements with class one than iterate through those elements to find the ones that have class two (in this case three).

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。