1
<ruby><rb>自分</rb><rp>(&lt;/rp><rt>じぶん&lt;/rt><rp>)&lt;/rp></ruby>

<ruby>タグは外したいけど中身は残したい。<ruby>ページ上のすべてのタグでそれを行いたいです。

試し方もわかりません.HTMLコンテンツを変数に保持し、 で<ruby>タグを削除しhide()、テキストをもう一度スプラッシュするという考えがありましたが、特定のセクションに再挿入する方法がわかりませんテキストの。また、私は苦労していeachます。

また、タグが削除された場所を覚えておきたいので、後でクリックするだけで元に戻すことができます。

4

2 に答える 2

4

unwrap関数を使用します。

$('ruby').unwrap();

http://api.jquery.com/unwrap/

編集:

上記のリンクのチュートリアルの例を同様にフォローしてみてはいかがでしょうか?

pTags = $('ruby');

if ( pTags.parent().is("span") ) {
  pTags.unwrap();
  pTags.wrap("<ruby></ruby>");
} else {
  pTags.unwrap();
  pTags.wrap("<span class='unwrapped_ruby'></span>");
}

タグをアンラップ<ruby>し、プレースホルダー タグでラップし<span>ます。

更新 1:

以前のコードには正しい「疑似コード」がありましたが、テストしたところ、正しく動作しませんでした。代わりに、次のようなことをしなければなりませんでした:

pTags = $('ruby');
var content = pTags.contents();

$("button").click(function () {
    if (content.parent().is("span")) {
        content.unwrap().wrapAll("<ruby></ruby>");
    } else {
        content.unwrap().wrapAll("<span class='unwrapped_ruby'></span>");
    }
});

更新 2:

<ruby>Update 1 では、複数のタグが考慮されていませんでした。コードを更新して、複数の ruby​​ タグとネストされたタグで機能するようにしました<ruby>

var wrapper = $('ruby');
var content;

$("button").click(function () {
    wrapper.each(function () {
        content = $(this).contents();
        if (content.parent().is("span")) {
            content.unwrap().wrapAll("<ruby></ruby>");
            wrapper = $('ruby');
        } else {
            content.unwrap().wrapAll("<span class='unwrapped_ruby'></span>");
            wrapper = $('span.unwrapped_ruby');
        }
    });

});

jsfiddleを試す

于 2013-07-23T20:04:04.973 に答える
0

ruby タグを削除したいだけの場合は、次のようにすることができます。

$(document).ready(function(){
    var cont = $('ruby').contents().unwrap();
    $('html').append(cont)
});

デモ

于 2013-07-23T20:06:06.717 に答える