empty()除特定元素外的所有内容

时间:2012-08-27 21:07:16

标签: jquery

使用jQuery的empty()方法,我可以阻止从DOM中删除特定元素,同时删除所有其他元素吗?

例如:

<div id="container">
    <div id="noRemove"></div>
    ... more content ...
</div>

当我使用jQuery $("#container").empty()进行此调用时,如何在删除noRemove内的其他内容时阻止删除container

4 个答案:

答案 0 :(得分:11)

您无法单独使用empty功能。这是你可以做到的一种方式:

var $container = $('#container'),
    $noRemove = $container.find('#noRemove');

$container.html($noRemove);

这是一个小提琴:http://jsfiddle.net/joplomacedo/R4cu5/

答案 1 :(得分:7)

使用以下内容,它会删除容器中的所有内容,但 idnoRemove的元素:

$('#container').contents().filter(function () {
    return this.id != "noRemove";
}).remove();

<强> DEMO

答案 2 :(得分:2)

这是我刚才使用的,涉及在特定行的AJAX拉动后刷新表数据。一点替代答案。

$('.overrideFcstRow td').each(function(){
    if(!$(this).hasClass('overrideTitle')){
        $(this).empty();
    }
});

答案 3 :(得分:-1)

我认为这应该可以解决问题:

$("#container").find(":not(#noRemove)").remove();