2010-01-07 1 views
4

У меня есть HTML как это:как удалить совпавшие теги, но оставить содержимое с JQuery

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

, и я хочу, чтобы избавиться от Див-х класса = «а», но оставить их содержание. Моя первая попытка была:

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

Однако это не определено. Как бы вы это сделали?

ответ

8

попробовать

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

Замену элементов с их содержанием строковой HTML будет нюком любых обработчиков событий, которые могли бы быть на месте. Это не будет:

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

Если у вас есть много уровней вложенности же класса этот ответ работает отлично. Принятый ответ нет. +1 – Ergec

0

В JQuery вы можете также использовать contents и unwrap.

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

Смежные вопросы