2013-10-14 190 views
3

我正在使用PHPQuery,它是jQuery的PHP端口,因此它也使用CSS選擇器。但是,有一個區別是PHPQuery在有多個選擇器時不會返回文檔順序中的匹配元素。在CSS中選擇具有相同父項的多個子項

是否可以將其組合成一個選擇器?

#article>p,#article>blockquote 

唯一的其他解決方案,我能想到的是:

#article>*:not(div):not(table):not(ul):not(... 
+0

敢肯定你回答了你自己的問題。雖然你可以刪除''..用途:'#article>:不(格):不(表):不(UL)' –

+1

是否庫支持'.filter()'方法?如果是的話,你可以選擇所有的孩子,然後過濾結果。 – undefined

+0

.has()? http://api.jquery.com/has/ –

回答

1

我沒有用過phpQuery直到5分鐘前),但因爲它的工作原理是jQuery的,使用它的.filter()方法應該做的伎倆,這個想法是選擇所有的孩子,然後過濾匹配的元素標準。

$doc['#article']->children()->filter(function($i, $element) { 
    return in_array($element->tagName, array('blockquote', 'p')); 
})->foo(); 
0

您可以組合選擇使用add()

$('#article>p').add('#article>blockquote') 

如果提供的jQuery代表了一組DOM的元素, .add()方法從那些 ele構造一個新的jQuery對象並且通過了這個方法。 .add() 的參數可以是$()接受的任何東西,包括jQuery 選擇器表達式,對DOM元素的引用或HTML代碼片段jQuery api

相關問題