JavaScript - 如何删除没有特定类的元素?

时间:2015-04-25 06:23:41

标签: javascript html5

我想要删除所有没有类'stay'的元素
例如:

<div class="stay">Stay</div> 
<div class="stay">Stay</div> 
<div class="go">Go</div> 
<div class="element">Stay</div> 
<div class="Sel">classy</div>

我想要一些javascript来删除没有类staySel的元素,而不必列出类goelement
我用过:

var els = document.querySelectorAll('#parent :not(.stay)');
for (var i = 0; i < els.length; i++) {
els[i].parentNode.removeChild(els[i])
}

从第一个答案开始,但我不确定如何保留班级'Sel'

另外,我不想要任何Jquery。

1 个答案:

答案 0 :(得分:0)

当你做这样的操作时,需要定位一个特定的父元素,否则它也可以删除像html / body等元素。

假设您有父节点,则可以将querySelectorAll:not()选择器结合使用

<div id="parent">
    <div class="stay">Stay</div>
    <div class="stay">Stay</div>
    <div class="go">Go</div>
    <div class="element">element</div>
</div>

然后

var els = document.querySelectorAll('#parent :not(.stay)');
for (var i = 0; i < els.length; i++) {
    els[i].parentNode.removeChild(els[i])
}

演示:Fiddle