2

我有两个 div 包含在另一个中:

<DIV id="DIV_1">
    parent_contents
    parent_contents

     <DIV id="DIV_2">
         child_contents
         child_contents
     </DIV>
</DIV>

我想删除 parent_contents,但不删除 child_contents。当我做:

$('#DIV_1').remove();

我失去了孩子的内容......

4

2 回答 2

3

过滤掉文本节点并删除它们:

$('#DIV_1').contents().filter(function() {
    return this.nodeType === 3;
}).remove();

小提琴

或者留下 just #DIV_2,只过滤掉一个元素:

$('#DIV_1').contents().filter(function() {
    return this.id != 'DIV_2';
}).remove();

小提琴

于 2013-07-24T16:45:19.383 回答
2

我很确定最简单的方法之一是将 DIV_2 子内容复制到一个变量中,然后在清空它后简单地将其附加到 DIV_1 。

jsFiddle 演示

var $temp = $('#DIV_2');
$("#DIV_1").empty().append($temp);
于 2013-07-24T16:43:19.943 回答