我想要删除所有没有类'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来删除没有类stay
和Sel
的元素,而不必列出类go
和element
我用过:
var els = document.querySelectorAll('#parent :not(.stay)');
for (var i = 0; i < els.length; i++) {
els[i].parentNode.removeChild(els[i])
}
从第一个答案开始,但我不确定如何保留班级'Sel'
。
另外,我不想要任何Jquery。
答案 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