Javascript 使用类树删除特定的HTML元素

Javascript 使用类树删除特定的HTML元素,javascript,html,Javascript,Html,如何使用vanilla JS查找和删除父类为Y的特定类为X的元素 例如。给定 <div class="likes noise1"> <div class="count noise2"> 42 </div> </div> <div class="retweets noise3"> <div class="count noise4"> 7 </div> </d

如何使用vanilla JS查找和删除父类为Y的特定类为X的元素

例如。给定

<div class="likes noise1">
   <div class="count noise2">
       42
   </div>
</div>
<div class="retweets noise3">
   <div class="count noise4">
       7
   </div>
</div>
<div class="messages noise5">
   <div class="count noise6">
       2
   </div>
</div>

42
7.
2.
我想删除前两个“.count”元素(“.likes”和“.retweets”的子元素)。然而,messages div应该保持不变


我尝试过使用querySelectorAll,它返回一个冻结的节点列表并对其进行迭代,但没有成功。

您可以通过循环所有元素来检查的属性,以删除元素,如下所示:

document.querySelectorAll('.count').forEach(函数(el){
var classN=el.parentNode.className
if(classN.includes('likes')| | classN.includes('retweets'))
el.移除();
});

42
7.
2.

除了已经给出的方法之外,另一种方法是保留一个css选择器数组,以便找到目标。从这里开始,只需使用
querySelector
即可使结果仍然有效,尽管是在循环中

“严格使用”;
函数byId(id){return document.getElementById(id)}
addEventListener('load',onWindowLoaded,false);
函数onWindowLoaded(evt)
{
var tgtSelectors=['.likes>.count','.retweets>.count'];
TGT选择器。forEach(由选择器移除);
}
函数removeBySelector(游标选择器)
{
var tgt=document.querySelector(curSelector);
while(tgt!=未定义)
{
tgt.remove();
tgt=document.querySelector(curSelector);
}
}

42
7.
2.

let found=document.querySelectorAll('.likes.count、.retweets.count')
将只获取喜欢和转发的
.count
节点-无需检查javascript中的父节点类。谢谢,这太棒了!我的应用程序中有一个问题,有很多其他类破坏了解决方案。我将if子句编辑成classN.includes('retweets')来解决这个问题that@StephenP,我已经更新了答案,包括解决方案,谢谢:)@Anders,非常欢迎你……请注意斯蒂芬在评论中建议的第二个答案:)@StephenP和Mamun你让我开心。谢谢Mamun,我正在发送编辑建议(我不想删除仅限父元素的内部元素)