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 のみを返し、フッター 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 に答える