删除父元素,但在HTML中使用jquery保留子元素

删除父元素,但在HTML中使用jquery保留子元素,jquery,Jquery,在下面的HTML中,我想删除div和H2标记,但使用jquery保留UL标记 请告知我如何才能做到这一点 <div class="row"> <h2><asp:Literal ID="categoryTitle" runat="server"></asp:Literal></h2> <ul class="tree js-catTree" id="treeContainer" runat="server">&l

在下面的HTML中,我想删除div和H2标记,但使用jquery保留UL标记

请告知我如何才能做到这一点

<div class="row">
    <h2><asp:Literal ID="categoryTitle" runat="server"></asp:Literal></h2>
    <ul class="tree js-catTree" id="treeContainer" runat="server"></ul>
</div>

    谢谢

    您可以使用jQuery功能吗

    这将删除元素(可视),但将其代码保留在变量中,然后您可以将其附加到另一个父元素中。

    您可以使用


    我只是在尝试删除父元素(同时仍保留子元素)时偶然发现了此页面,以防它对其他人有用,我发现这正是我所需要的。对我来说,这是一个简单的查找元素并展开:

    $('.target-child').unwrap();
    
    然而,在这种情况下,h2去除的添加使事情更加复杂:

    $('.row h2').siblings('ul').unwrap().end().remove();
    

    上述操作应该更为优化,因为它不依赖于匿名函数的创建和调用。

    如上所述,您可以
    分离元素并将引用保存到变量

    var $ul = $('.row h2').siblings('ul').detach();
    
    然后,您可以在其父级之后插入
    ul
    ,然后从DOM中删除父级:

    $('.row').after($ul).remove();
    

    很好的解决方案。Amit如果您想保留
    中的内容,请使用
    返回$('ul,h2*',this)
    $('ul',this)
    在功能上与
    $(this)相同。查找('ul')
    ,对吗?我以前没见过这种语法。@Jeff不太清楚,根据这一点,
    find
    更快,尽管YMMV。也许在功能上是个错误的副词。我只是想弄清楚他们是否会退回同样的东西。听起来像是这样。感谢您稍微扩展了我的世界。@Jeff在这种情况下,是的:)他们都找到了从树中特定点开始的元素。@AndreasM.~嗯,奇怪;很确定它以前可以工作,但找不到以前版本的jQuery在哪里工作。为大家干杯,我们更新了一个100%有效的版本,还有一个演示小提琴。他最好在其父对象之后插入
    ul
    ,然后从DOM中删除父对象。
    $('.row').after($ul).remove();