Удалить элемент с помощью jQuery, но оставить текст
У меня есть html, который выглядит так:
<div>
<span class="red">red text</span> some more text <span class="blue">blue text</span>
</div>
Что я хочу сделать, это использовать jQuery для удаления всех интервалов внутри div независимо от прикрепленного класса, но оставить текст в тегах span позади. Таким образом, конечный результат будет:
<div>
red text some more text blue text
</div>
Я попытался использовать метод unwrap()
, но он разворачивает div. Я также пытался удалить элементы, но удаляет элементы и их текст.
Ответы
Ответ 1
jQuery 1.4 +
Вы не хотите разворачивать диапазон, вы хотите развернуть его содержимое:
$("span").contents().unwrap();
Онлайн-демонстрация: http://jsbin.com/iyigi/edit
jQuery 1.2 +
Для более ранних версий jQuery вы можете сделать следующее:
$("span").replaceWith(function () {
return $(this).text();
});
Онлайн-демонстрация: http://jsbin.com/iyigi/40/edit
Ответ 2
Не хватит ли простого $('#my-div').text ($('#my-div').text ())
, не прибегая к распаковке?
Ответ 3
$(mydiv).html($(mydiv).text())
должен сделать трюк.