<ruby><rb>自分</rb><rp>(</rp><rt>じぶん</rt><rp>)</rp></ruby>
我想删除<ruby>
标签,但我想保留内容。我想用<ruby>
页面上的所有标签来做。
我什至不知道如何尝试,我想将 HTML 内容保存在变量中,用 删除<ruby>
标签hide()
,然后再次启动文本,但我不知道如何将其重新插入特定部分的文本。另外,我正在努力解决each
.
我还想记住标签被删除的位置,以便稍后通过单击将它们取回。
<ruby><rb>自分</rb><rp>(</rp><rt>じぶん</rt><rp>)</rp></ruby>
我想删除<ruby>
标签,但我想保留内容。我想用<ruby>
页面上的所有标签来做。
我什至不知道如何尝试,我想将 HTML 内容保存在变量中,用 删除<ruby>
标签hide()
,然后再次启动文本,但我不知道如何将其重新插入特定部分的文本。另外,我正在努力解决each
.
我还想记住标签被删除的位置,以便稍后通过单击将它们取回。
使用unwrap
功能:
$('ruby').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:
更新 1 没有考虑多个<ruby>
标签。我已经更新了代码,使其适用于多个 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
如果您只是想删除 ruby 标签,您可以执行以下操作:
$(document).ready(function(){
var cont = $('ruby').contents().unwrap();
$('html').append(cont)
});