javascript - jQuery :has() equivalent using document. 查询选择器

标签 javascript jquery

正如我在主题中所写 - 我正在使用 document.querySelector 寻找等效的 jQuery :has() 选择器。

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

使用 jQuery 会很简单:

$("p:has(a)")

如何使用 javascript 的 document.querySelector 来实现?

提前致谢。

最佳答案

: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 )
   });
}

http://jsfiddle.net/jer5xde5/

关于javascript - jQuery :has() equivalent using document. 查询选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33391234/

相关文章:

javascript - mootools 添加一个 id

javascript - react : Pass value of HTML element to event handler onClick

javascript - 将jQuery事件应用于CSS形状

jquery - 避免在内容母版页中出现多个 document.ready

javascript - CSS 移动菜单平滑滚动在父级固定时暂时禁用

javascript - 为什么使用带有逻辑 AND 的 throw 和 return 是错误的?

javascript - 程序化验证 + 以 Acrobat PDF 表单提交

javascript - 当文本区域未处于焦点时从屏幕上删除下拉菜单

jquery - Flexslider 标题水平折叠

javascript - ajax - jsp总是出现错误