如何删除匹配的标签,但留下内容与JQuery

时间:2010-01-07 03:36:12

标签: javascript jquery html replace

我有这样的HTML:

<div>
 <div class="a">
  content1
 </div>
 content 2
 <div class="a">
  <b>content 3</b>
 </div>
</div>

我希望摆脱class =“a”的div,但留下他们的内容。我最初的尝试是:

$("div.a").replaceWith($(this).html());

未定义。你会怎么做?

3 个答案:

答案 0 :(得分:8)

$("div.a").each(function(){
    $(this).replaceWith($(this).html());
});

答案 1 :(得分:5)

使用字符串化的HTML内容替换元素将会破坏可能存在的任何事件处理程序。这不会:

$("div.a").each(function () {
    $(this).replaceWith($(this.childNodes));
});

答案 2 :(得分:0)

在jQuery中,您还可以使用contentsunwrap

$(".parent").find(".a").contents().unwrap(); 
<div class="parent">
 <div class="a">
  content1
 </div>
 content 2
 <div class="a">
  <b>content 3</b>
 </div>
</div>