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

Ami*_*mit 19 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"></ul>
</div>
Run Code Online (Sandbox Code Playgroud)

谢谢

Tow*_*own 31

您可以使用 replaceWith()

$('.row').replaceWith(function() {
 return $('ul', this);
});
Run Code Online (Sandbox Code Playgroud)

工作演示

  • 好的解决方案 如果你想保留`<h2>`里面的东西,请使用`return $('ul,h2*',this); (11认同)

Peb*_*bbl 17

当我只是试图删除一个父元素(同时仍然保留孩子们)时,我偶然发现了这个页面- 以防它对其他人有用,我发现unwrap它正是我所需要的.对我来说,这是一个简单的find-an-element-and -wwrap:

$('.target-child').unwrap();
Run Code Online (Sandbox Code Playgroud)

然而,在这种情况下增加h2去除会使事情变得更加复杂:

$('.row h2').siblings('ul').unwrap().end().remove();
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/t8uQ8/

以上应该更加优化,因为它不依赖于使用匿名函数创建和调用.