jQuery – 选择除单个元素及其子元素之外的所有内容?
我试图删除整个身体中的所有东西,除了单个元素及其子元素。 我怎么能做到这一点?
编辑1考虑以下标记:
在上面的例子中,我想删除div1,div3和div4,以及它们的子节点,但保留div2,因为它包含不要删除的元素。
$("body > *").not("body > #elementtokeep").remove();
您可以将not()部分替换为您想要保留的内容
你可以这样做:
$('body > *:not(#dondelete)').remove();
你的元素有id="dondelete"
并且是身体的孩子。
这是一个老问题,但接受的答案是错误的。 它在这种情况下不起作用(参见http://jsfiddle.net/LVb3V/ ),当然不是一般的解决方案。
更好用:
$('body *').not('#div2, #div2 *').remove();
除了div2及其包含的所有元素之外,这将删除正文中的所有元素。
我觉得
$("body *").not("body #div2") .not("body #div2 #elementtokeep") .not("body #div2 #elementtokeep *") .remove();
是最容易集中注意力的方式。
这段代码对我有用。
$('body > * :not(#123)').remove()
你需要在*和:之间留出空间。 之前尝试使用代码时
$('body > *:not(#123)').remove()
它不起作用。 我必须在*和:字符之间留出空格。
快乐的编码。