Javascript jQuery:has()等效于使用document.querySelector

Javascript jQuery:has()等效于使用document.querySelector,javascript,jquery,Javascript,Jquery,正如我在主题中所写的,我正在使用document.querySelector寻找一个jQuery:has()选择器等价物 例如,我想选择包含链接的所有段落: 使用jQuery,它将非常简单: $("p:has(a)") 如何使用javascript的document.querySelector实现这一点 提前感谢。如 因为:has()是jQuery扩展,而不是CSS的一部分 规范中,使用:has()的查询无法利用 本机DOM querySelectorAll()方法提供的性能提升 没有本地等价

正如我在主题中所写的,我正在使用document.querySelector寻找一个jQuery:has()选择器等价物

例如,我想选择包含链接的所有段落:

使用jQuery,它将非常简单:

$("p:has(a)")
如何使用javascript的document.querySelector实现这一点

提前感谢。

因为:has()是jQuery扩展,而不是CSS的一部分 规范中,使用:has()的查询无法利用 本机DOM querySelectorAll()方法提供的性能提升


没有本地等价物。

在Javascript中没有与
:has()等价物。如果要执行此操作,可以手动执行

对于childNode,您需要使用循环手动迭代它。

A
:has('selector')
在vanilla JS中的等价物基本上就是jQuery扩展中的情况:匹配选择器,然后过滤掉与子选择器不匹配的元素:

[].filter.call( document.querySelectorAll('p'), function( elem ){
   return elem.querySelector('a')
});
或更一般的功能:

var querySelectorHas = function( parent, child ){
   return [].filter.call( document.querySelectorAll( parent ), function( elem ){
       return elem.querySelector( child )
   });
}

我认为没有,因为:has()是jQuery中的一个特殊选择器