我正在使用PHPQuery,它是jQuery的PHP端口,因此它也使用CSS選擇器。但是,有一個區別是PHPQuery在有多個選擇器時不會返回文檔順序中的匹配元素。在CSS中選擇具有相同父項的多個子項
是否可以將其組合成一個選擇器?
#article>p,#article>blockquote
唯一的其他解決方案,我能想到的是:
#article>*:not(div):not(table):not(ul):not(...
我正在使用PHPQuery,它是jQuery的PHP端口,因此它也使用CSS選擇器。但是,有一個區別是PHPQuery在有多個選擇器時不會返回文檔順序中的匹配元素。在CSS中選擇具有相同父項的多個子項
是否可以將其組合成一個選擇器?
#article>p,#article>blockquote
唯一的其他解決方案,我能想到的是:
#article>*:not(div):not(table):not(ul):not(...
我沒有用過phpQuery
(直到5分鐘前),但因爲它的工作原理是jQuery的,使用它的.filter()
方法應該做的伎倆,這個想法是選擇所有的孩子,然後過濾匹配的元素標準。
$doc['#article']->children()->filter(function($i, $element) {
return in_array($element->tagName, array('blockquote', 'p'));
})->foo();
您可以組合選擇使用add()
$('#article>p').add('#article>blockquote')
如果提供的jQuery代表了一組DOM的元素, .add()方法從那些 ele構造一個新的jQuery對象並且通過了這個方法。 .add() 的參數可以是$()接受的任何東西,包括jQuery 選擇器表達式,對DOM元素的引用或HTML代碼片段jQuery api。
敢肯定你回答了你自己的問題。雖然你可以刪除''..用途:'#article>:不(格):不(表):不(UL)' –
是否庫支持'.filter()'方法?如果是的話,你可以選擇所有的孩子,然後過濾結果。 – undefined
.has()? http://api.jquery.com/has/ –