我正在使用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/ –