web-dev-qa-db-ja.com

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がアンラップされます。また、要素を削除しようとしましたが、要素とそのテキストが削除されます。

29
lomaxx

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

83
Sampson

アンラップに頼らずに、単純な$('#my-div').text ($('#my-div').text ())で十分ではないでしょうか?

1
K Prime