清空没有特定元素的所有div的子项

时间:2018-03-17 22:31:13

标签: javascript jquery

所以,我认为这应该很简单,但我似乎无法做到正确,说我有一个空的div:

<div id='mainDiv'></div>

这个div用来自数据库的数据用ajax动态填充,我希望点击按钮来清空这个div,但保留一个具有特定id ex <div id='divToKeep'></div>的元素,我试过:

$(document).on('click', '#button', function(){
 $("#mainDiv > *:not('#divToKeep')").empty()
})

现在这个剂量清空所有东西,但保留空div,我想删除#mainDiv内的所有内容,但#divToKeep元素。

3 个答案:

答案 0 :(得分:3)

获取所有mainDiv,然后使用除了想要保留的div之外的子项获取其中的所有元素,然后调用remove:

csv

检查这个小提琴:https://jsfiddle.net/yzfw8atp/2/

答案 1 :(得分:0)

这样,它将divToKeep置于顶层,然后删除其中的所有内容。

$('#divToKeep').appendTo('#mainDiv');  // move #divToKeep up to the body
$('#mainDiv *:not(#divToKeep):not(#divToKeep *)').remove();  // remove everything except #divToKeep and inner children
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id='mainDiv'>
  <div>
    <div>
      <div id="divToKeep">
        <div>
        
        </div>
      </div>
    </div>
  </div>
</div>

答案 2 :(得分:0)

$("#mainDiv").children().not("#divToKeep").remove();