关于javascript:如何使用jQuery删除所有父div

how to remove all the parent div using jQuery

我有一个这样的分区结构

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<body>
 
    <nav></nav>
    <nav></nav>
   
     
       
         
<ul>

           
<li>

</li>

           
<li>

</li>

         
</ul>

       
     
   
 
</body>

现在,我想删除DIV父容器的所有父元素,但不删除父容器DIV中的任何元素,我不想使用clone,然后将元素包含在body中,因为我在父容器内使用了一些kendo控件,而kendo控件在使用cloned div时停止工作。基本上我不想使用以下逻辑

1
2
3
var $cloned=$('#parent-conatiner')
$('body').empty();
$('body').append($cloned);

如有任何帮助,我们将不胜感激,谢谢您


使用下面的方法,所有事件绑定都保持不变。

1
$('#parent-conatiner').parentsUntil('body').replaceWith($('#parent-conatiner'));


使用jquery unwrap()函数

或者使用Kendo控制的克隆方法和EventDelegate

另一个解决方案是:

1
2
$('body').append($('#parent-conatiner'));
$('body div:last').prevAll().remove();

但这应该和克隆一样是一个问题

另一个选项是detach()。

1
2
var el = $('#parent-conatiner').detach();
$('body').empty().append(el);