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を試す