在JavaScript中过滤掉父元素中的所有子元素
我正试图用普通JavaScript查询DOM,以从带有class在JavaScript中过滤掉父元素中的所有子元素,javascript,html,dom,Javascript,Html,Dom,我正试图用普通JavaScript查询DOM,以从带有classicon的父节点中筛选出包含img标记的所有元素。例如: 在编写查询之后,它应该返回两个元素和 这不应返回任何内容: 使用jQuery,我可以通过以下方式轻松实现这一点: jQuery('.icon').not(':has(img)' 我发现在普通JavaScript中实现同样的功能有点困难。选择all。icon,在它们之间循环,过滤掉所有包含img const result=[…document.querySelecto
icon
的父节点中筛选出包含img
标记的所有元素。例如:
在编写查询之后,它应该返回两个元素
和
这不应返回任何内容:
使用jQuery,我可以通过以下方式轻松实现这一点:
jQuery('.icon').not(':has(img)'
我发现在普通JavaScript中实现同样的功能有点困难。选择all
。icon
,在它们之间循环,过滤掉所有包含img
const result=[…document.querySelectorAll(`.icon`)]
.filter(item=>!item.querySelector(`img`)
控制台日志(结果)代码>
@qiAlex-谢谢你让这个看起来这么简单。我必须做一些调整,以使其在IE中工作。以下代码可能会帮助具有相同要求的人:
const iconsArray=document.queryselectoral('.icon');
Array.prototype.forEach.call(IConArray,函数(元素){
if(!element.querySelector('img')){
// .....
}
});