1

我想删除除跨度及其父母之外的某个“选择”之外的所有内容:

$('*').not('span:parents').remove();

这对我不起作用,尝试了很多没有运气的事情。

4

2 回答 2

7

而不是选择所有元素,只需选择必须删除的顶级元素,其任何子元素body都没有span元素作为后代:

$('body').children().not($('span').parents()).remove();

$('span').parents()还将包含body必须保留的孩子。

演示:http: //jsfiddle.net/dirtyd77/BaLAb/

于 2013-03-18T20:37:19.653 回答
2

我建议保存元素,删除其余元素,然后重新放置:

var saved = $('#a').closest('body>*').detach();
$(document.body).children().remove();
$(document.body).append(saved);

示范

编辑:使用费利克斯的回答,事实上你不必保存并放回去......

于 2013-03-18T20:37:11.897 回答