我试图删除以下DIV'
<div class="whatever_name">
<div class="whatever_name">
<h2>subtitle</h2>
<p>content<p>
</div>
</div>
并需要以下输出:
<h2>subtitle</h2>
<p>content<p>
使用jQuery,我不能使用remove(),因为它也清除了内容。使用纯JavaScript,发生相同。
我不知道如何解决这个问题。
有什么想法吗?
编辑:
结构并不总是一样的。它可以变化,即:
<div class="whatever_name">
<div class="whatever_name">
<div class="whatever_name">
<h2>subtitle</h2>
<p>content<p>
</div>
</div>
</div>
只需要一个可以处理此类任务的迭代器。
答案 0 :(得分:1)
对children元素使用unwrap()
方法两次。
$('.content .post-12')
// get children elements, or use contents()
.children()
// use unwrap twice to unwrap two parents
.unwrap().unwrap()
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="content">
<div class="post-12">
<h2>subtitle</h2>
<p>content</p>
</div>
</div>
&#13;
更新:使用更新后的内容,您只需根据自己的要求更改选择器。
$('div > div > h2,div > div > p').unwrap().unwrap()
// or use
// $('div > div:has(h2):has(p) > *')
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="whatever_name">
<div class="whatever_name">
<div class="whatever_name">
<h2>subtitle</h2>
<p>content
<p>
</div>
</div>
</div>
&#13;