Удалите элемент с текстом отпуска, но jQuery

У меня есть некоторый 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() метод, но это разворачивает отделение. Я также попытался удалить элементы, но это удаляет элементы и их текст.

29
задан lomaxx 22 February 2010 в 01:51
поделиться

2 ответа

jQuery 1.4+

Вы не хотите разворачивать span, вы хотите развернуть его содержимое:

$("span").contents().unwrap();

Онлайн-демонстрация: http://jsbin.com/iyigi/edit

jQuery 1.2+

Для более ранних версий jQuery вы можете сделать следующее:

$("span").replaceWith(function () {
    return $(this).text();
});

Онлайн-демонстрация: http://jsbin.com/iyigi/40/edit

83
ответ дан 28 November 2019 в 00:53
поделиться

Не было бы простого $ ('# my-div'). Text ($ ('# my-div'). Text ( )) достаточно, не прибегая к разворачиванию?

1
ответ дан 28 November 2019 в 00:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: