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