删除容器外的所有元素?

时间:2016-04-23 06:11:47

标签: javascript jquery

我正试图找到一种方法来删除特定容器之外的所有元素(div)。

例如:

我有一个HTML容器,里面有几个div,如下所示:

baby

我基本上需要删除container之外的类名return的所有元素。有些元素甚至没有容器,所以我不能使用父类或类似的东西来定位它们。

这有可能吗?

3 个答案:

答案 0 :(得分:10)

您可以使用 :not() not() 来避免#container

中的元素

$('.baby:not(#container .baby)').remove();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="container">
  <div class="baby">1</div>
  <div class="baby">1</div>
  <div class="baby">1</div>
  <div class="baby">1</div>
</div>
<div id="someID">
  <div class="baby">2</div>
  <div class="baby">2</div>
  <div class="baby">2</div>
</div>
<div class="baby">3</div>
<div class="baby">3</div>
<div class="baby">3</div>

使用 not()

$('.baby').not('#container .baby').remove();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="container">
  <div class="baby">1</div>
  <div class="baby">1</div>
  <div class="baby">1</div>
  <div class="baby">1</div>
</div>
<div id="someID">
  <div class="baby">2</div>
  <div class="baby">2</div>
  <div class="baby">2</div>
</div>
<div class="baby">3</div>
<div class="baby">3</div>
<div class="baby">3</div>

答案 1 :(得分:4)

&#13;
&#13;
//$('.baby:not(#container .baby)').remove();//select class baby not inside container using selector :not

$('.baby').not('#container .baby').remove();//select class baby not inside container using method .not()
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="container">
<div class="baby">1</div>
<div class="baby">2</div>
<div class="baby">3</div>
<div class="baby">4</div>
</div>

<div id="someID">
<div class="baby">5</div>
<div class="baby">6</div>
<div class="baby">7</div>
</div>


<div class="baby">8</div>
<div class="baby">9</div>
<div class="baby">0</div>
&#13;
&#13;
&#13;

答案 2 :(得分:3)

您还可以使用所有孩子所在的容器,例如:

$('body').children().not('#container').remove();