删除div而不删除普通Javascript中的内容

Uma*_*hid 7 html javascript jquery dom

任何人都可以帮助我如何div在不删除内容的情况下删除标签JavaScript?

这是我需要删除所有div标签的html:

<div id="id1" class="someclass">
  <p>some text
    <label> Test content </label>
  </p>
  <div id="id2" style="overfolw:scroll">
    <span>some text</span>
    <div id="level3">
      <label> Test content </label>
      <a href="https://twitter.com/realDonaldTrump/status/882186896285282304" target=_blank rel=noopener>creepiness</a>
    </div>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

预期输出如下所示.

<p>some text
   <label> Test content </label>
</p>
<span>some text</span>
<label> Test content </label>
<a href=https://twitter.com/realDonaldTrump/status/882186896285282304 target=_blank rel=noopener>creepiness</a>
Run Code Online (Sandbox Code Playgroud)

Ana*_*Die 11

1.使用纯java脚本: -

var divs=document.getElementsByTagName('div');
var counter = divs.length-1;
for(i=counter;i>=0;i--){
 divs[i].outerHTML = divs[i].innerHTML;
}
Run Code Online (Sandbox Code Playgroud)
<div id="id1" class="someclass">
  <p>some text
    <label> Test content </label>
  </p>
  <div id="id2" style="overfolw:scroll">
    <span>some text</span>
    <div id="level3">
      <label> Test content </label>
      <a href="https://twitter.com/realDonaldTrump/status/882186896285282304" target=_blank rel=noopener>creepiness</a>
    </div>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

2.You可以使用jQuery 展开() 也: -

$(document).ready(function(){
  $('div').contents().unwrap();
});
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="id1" class="someclass">
  <p>some text
    <label> Test content </label>
  </p>
  <div id="id2" style="overfolw:scroll">
    <span>some text</span>
    <div id="level3">
      <label> Test content </label>
      <a href="https://twitter.com/realDonaldTrump/status/882186896285282304" target=_blank rel=noopener>creepiness</a>
    </div>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)


Ber*_*rgi 5

使用可迭代节点列表等尖端技术replaceWith,使用普通 DOM API 非常简单:

for (const div of document.querySelectorAll("div"))
// alternatively: Array.from(document.getElementsByTagName("div"))
    div.replaceWith(...div.childNodes);
Run Code Online (Sandbox Code Playgroud)

  • +1但是,您应该在帖子中直接提及,这不仅仅是_尖端_,而且是_实验_技术,迄今为止**浏览器兼容性非常有限**。不过,很好的答案。 (3认同)