删除div并保留内容

时间:2017-12-01 17:32:50

标签: javascript jquery html

我试图删除以下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>

只需要一个可以处理此类任务的迭代器。

1 个答案:

答案 0 :(得分:1)

对children元素使用unwrap()方法两次。

&#13;
&#13;
$('.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;
&#13;
&#13;

更新:使用更新后的内容,您只需根据自己的要求更改选择器。

&#13;
&#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;
&#13;
&#13;