我试图删除整个身体中的所有东西,除了单个元素及其子元素.我怎么能做到这一点?
编辑1 考虑以下标记:
<html>
<body>
<div id="div1"></div>
<div id="div2">
<div id="elementNotToRemove"></div>
</div>
<div id="div3"></div>
<div id="div4"></div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
在上面的例子中,我想删除div1,div3和div4,以及它们的子节点,但保留div2,因为它包含不删除的元素.
Phi*_*ert 24
$("body > *").not("body > #elementtokeep").remove();
Run Code Online (Sandbox Code Playgroud)
您可以将not()部分替换为您想要保留的内容
你可以这样做:
$('body > *:not(#dondelete)').remove();
Run Code Online (Sandbox Code Playgroud)
你的元素拥有id="dondelete"并且是身体的孩子.
这是一个老问题,但接受的答案是错误的.它在这种情况下不起作用(参见http://jsfiddle.net/LVb3V/),当然不是一般的解决方案.
更好用:
$('body *').not('#div2, #div2 *').remove()?;
除了div2及其包含的所有元素之外,这将删除正文中的所有元素.