30

次のような html があります。

<div>
    <span class="red">red text</span> some more text <span class="blue">blue text</span>
</div>

私がしたいのは、jQuery を使用して、添付されたクラスに関係なく div 内のすべてのスパンを削除することですが、スパン タグ内のテキストは残します。したがって、最終結果は次のようになります。

<div>
    red text some more text blue text
</div>

メソッドを使用しようとしましたunwrap()が、div がアンラップされます。また、要素を削除しようとしましたが、要素とそのテキストが削除されます。

4

3 に答える 3

87

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

于 2010-02-22T01:53:57.623 に答える
1

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

于 2010-02-22T02:22:27.217 に答える