2012-03-17 3 views
13

Как удалить элемент, но не содержимое внутри этот элемент?Как удалить элемент, но не содержимое внутри него?

<a href="#"> 
    <span> 
     <img src="pic-1.jpg"/> 
    </span> 
</a> 

Я хочу, чтобы удалить в span, что облегает изображение.

Так что я могу получить,

<a href="#"> 

    <img src="pic-1.jpg"/> 

</a> 
+0

Возможный дубликат [Удаление HTML-тег, но сохранить innerHtml] (http://stackoverflow.com/questions/4232961/remove-a-html-tag-but-keep-the-innerhtml) – Dzyann

ответ

31

Вам нужно unwrap

$('img').unwrap(); 
+0

thats fab! благодаря! – laukok

+0

Ох, хорошая функция. +1 для фактического поиска вместо того, чтобы делать то, что я сделал. –

+0

Я знаю, что это Q & A старый, но как насчет разворачивания текста? Можно развернуть элемент, но как насчет простого текста? –

4

Функция JQuery unwrap() является то, что вы ищете:

Удалить родителей набора согласованных элементов из DOM, оставляя на своем месте соответствующие элементы.

Отъезд the API doc page для получения дополнительной информации.

+0

это большое спасибо! :-) – laukok

1

Вы должны изменить свой HTML архитектуру немного здесь:

<a href="#" id="my_href"> 
    <span id="my_span"> 
     <img src="pic-1.jpg"/> 
    </span> 
</a> 

JQuery решение:

$("#my_href").html($("#my_span").html()); 

Non JQuery решение:

document.getElementById("my_href").innerHTML = document.getElementById("my_span").innerHTML; 
+3

Использование HTML, как это, как правило, является плохой практикой. Вы уничтожаете и воссоздаете узлы вместо того, чтобы просто перемещать те, которые нужно сохранить, и удалять их для удаления. Он также уничтожит любые обработчики или другие данные, связанные с элементом 'img'. –

+2

А, правда? Хорошо, тогда я буду избегать этого в будущем. :) –

+0

То есть ** НЕ ** jQuery решение! – gdoron

7
$(document).ready(function(){ 
    $span = $('span'); 
    $span.replaceWith($span.html()); 
}); 

см пример http://jsfiddle.net/vikastyagi87/Xaa39/6/

+0

Я думаю, что это самый полный ответ, потому что он также работает для разворачивания текста (не только элементов DOM) – viery365

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