我想要实现的是在以下示例中找到UL和div。以及任何其他可能的后续div和ul。
<ul id="networknavigation" class="navigation" role="navigation">
</ul>
[ .. some code .. ]
<div id="footer" class="navigation">
</div>
[ .. some code .. ]
在查看了QueryPath API之后,我发现可以使用多个选择器,正如您可以在页面的"示例选择器"部分看到的那样:
我正在使用PHP和QueryPath使用这样的函数:
public function testFindNavigation()
{
$errors = array();
foreach($this->qp->find('ul, div') as $el) {
if($el->hasClass('navigation, nav, menu') || $el->attr('id') == 'nav' || $el->attr('role') == 'navigation') {
array_push($errors, $el->html());
}
}
return $errors;
}
不幸的是,这个函数只返回UL而不是页脚-div,我真的不知道为什么它不工作。我还尝试像这样使用查找方法:
qp->find('ul', 'div')
这给出了完全相同的结果。
我在这里错过了什么?
我认为你需要改变
$el->hasClass('navigation, nav, menu')
$el->hasClass('navigation', 'nav', 'menu')
只返回ul的原因是上面语句的版本询问元素是否具有"navigation, nav, menu"类,这不是您想要的。