0

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

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

在查看了 QueryPath API 之后,我发现可以使用多个选择器,正如您在页面的“示例选择器”部分中看到的那样:
QueryPath CSS 选择器参考

我正在使用这样的函数使用 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 而不是 footer-DIV,我真的不知道为什么它不起作用。我也尝试使用这样的 find 方法:

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

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

我在这里想念什么?

4

1 回答 1

0

我认为你需要改变

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

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

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

于 2012-12-26T03:21:42.857 回答