我想删除除跨度及其父母之外的某个“选择”之外的所有内容:
$('*').not('span:parents').remove();
这对我不起作用,尝试了很多没有运气的事情。
而不是选择所有元素,只需选择必须删除的顶级元素,其任何子元素body
都没有span
元素作为后代:
$('body').children().not($('span').parents()).remove();
$('span').parents()
还将包含body
必须保留的孩子。
演示:http: //jsfiddle.net/dirtyd77/BaLAb/
我建议保存元素,删除其余元素,然后重新放置:
var saved = $('#a').closest('body>*').detach();
$(document.body).children().remove();
$(document.body).append(saved);
编辑:使用费利克斯的回答,事实上你不必保存并放回去......