私はこのように見えるいくつかの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がアンラップされます。また、要素を削除しようとしましたが、要素とそのテキストが削除されます。
スパンをアンラップするのではなく、その内容をアンラップする必要があります。
$("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 ())
で十分ではないでしょうか?