我正在使用 PHPQuery,它是 jQuery 的 PHP 端口,因此它也使用 CSS 选择器。但是,一个区别是当有多个选择器时,PHPQuery 不会按文档顺序返回匹配的元素。
是否可以将其组合到一个选择器中?
#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')
给定一个表示一组 DOM 元素的 jQuery 对象,.add() 方法从这些元素的并集和传递给该方法的元素构造一个新的 jQuery 对象。.add() 的参数几乎可以是 $() 接受的任何内容,包括 jQuery 选择器表达式、对 DOM 元素的引用或 HTML 片段jQuery api。