我想在下面的HTML中使用jQuery删除div和H2标签,但保留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>
感谢
我想在下面的HTML中使用jQuery删除div和H2标签,但保留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>
感谢
我在尝试删除一个父元素时偶然发现了这个页面(同时保留子元素) - 以防对其他人有用,我发现unwrap
正是我需要的。 对于我来说,只需找到一个元素并取消其包装即可:
$('.target-child').unwrap();
然而,在这种情况下添加h2删除会使事情变得更加复杂:
$('.row h2').siblings('ul').unwrap().end().remove();
上述代码更优,因为不依赖于匿名函数的创建和调用。
detach()
函数吗?ul
,然后将父元素从DOM中移除。 - AlexMelw正如@Silvain所言,你可以detach
该元素并将其引用保存到变量中。
var $ul = $('.row h2').siblings('ul').detach();
然后,您可以在其父元素之后插入 ul
,稍后从 DOM 中删除父元素:
$('.row').after($ul).remove();
<h2>
标签中的内容,请使用return $('ul, h2 *', this);
。 - Gary Green$('ul', this)
在功能上与$(this).find('ul')
是一样的,对吗?我以前没见过那种语法。 - Jefffind
更快,尽管结果可能因人而异。https://dev59.com/KnE95IYBdhLWcg3wXcvd - Town