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

时间:2012-12-25 22:56:28

标签: php css-selectors querypath

我想要实现的是在以下示例中找到UL和DIV。以及任何其他可能的后续DIV和UL。

<ul id="networknavigation" class="navigation" role="navigation">
</ul>
[ .. some code .. ]
<div id="footer" class="navigation">
</div>
[ .. some code .. ]

在查看了QueryPath API之后,我发现可以使用多个选择器,正如您在&#34;示例选择器&#34;中看到的那样。页面的一部分:
QueryPath CSS Selector Reference

我正在使用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,我无法理解为什么它不起作用。我也尝试使用这样的find方法:

qp->find('ul', 'div')

这给了我完全相同的结果。

我在这里缺少什么?

1 个答案:

答案 0 :(得分:0)

我认为你需要改变

$el->hasClass('navigation, nav, menu')

$el->hasClass('navigation', 'nav', 'menu') 

只返回UL的原因是您的上述语句版本询问该元素是否具有“导航,导航,菜单”类,这不是您的意图。