Javascript 使用类树删除特定的HTML元素
如何使用vanilla JS查找和删除父类为Y的特定类为X的元素 例如。给定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
<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,我正在发送编辑建议(我不想删除仅限父元素的内部元素)