jquery删除所有div,但1不工作

jquery删除所有div,但1不工作,jquery,Jquery,我试图删除所有div元素,同时只保留一个显示 我尝试了所有这些,但都没有效果,它们删除了所有内容,并且没有显示“mfloverview” $('#body_home div:not(#mfloverview)').remove(); $('#body_home div').not('#mfloverview').remove(); $('div').not('#mfloverview').remove(); 这是HTML <body id="body_home"> <di

我试图删除所有div元素,同时只保留一个显示

我尝试了所有这些,但都没有效果,它们删除了所有内容,并且没有显示“mfloverview”

$('#body_home div:not(#mfloverview)').remove();
$('#body_home div').not('#mfloverview').remove();
$('div').not('#mfloverview').remove();
这是HTML

<body id="body_home">
  <div id="home" class="pagebody">
    <div></div>
    <div></div>
    <div></div>
    <div id="mfloverview"></div>
  </div>
</div>

您的选择选择了所有
div
元素,这些元素没有
#mfloverview
。这包括
#home
。您的代码将删除该元素以及其中的所有内容并完成

让您的选择更具体一些:

$('#body_home #home div').not('#mfloverview').remove();
因此,所选的
元素必须是
#home
的后代,它必须是
#body#u home


事实上,当你瞄准除
#mfloverview
以外的所有div时,你也瞄准了它的父div,在这种情况下,它也会作为它的子div被删除

尝试删除
#home
中的div,但不要像下面的代码那样删除
#mfloverview

$('home div')。不是('mfloverview')。删除()

s
D
F
G
试试看


#myfloverview
是main div
#home
的子级。它将删除父级中的所有内容。$(“div>*:not(#mfloverview)”).remove();这是可行的。首先,试着注释为什么你的答案会对OP有帮助,第二,不要混合使用Jquery和Javascript,有时候OP会感到困惑。
$("#body_home div").not(document.getElementByid('mfloverview')).remove()
$('#home').find(":not(#mfloverview)").remove();
$('div').find(":not(#mfloverview)").remove();