QueryPath Find -使用多个选择器查找元素


QueryPath Find - Finding elements using multiple selectors

我想要实现的是在以下示例中找到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"类,这不是您想要的。