我的文档中包含许多®字符。我需要将它们全部渲染为上标。我正在尝试这个,但没有运气:
$('body:contains("®")').contents().each(function () {
if (this.nodeType == 1) { //Look for only element Nodes
$(this).html(function (_, oldValue) {
return oldValue.replace(/®/g, "<sup>$&</sup>")
})
}
});
答案 0 :(得分:2)
答案 1 :(得分:0)
我不确定这是否具有足够的性能或足够强大,但它似乎在我的有限测试中有效:
$(function () {
var html = $('body').html();
html = html.replace(/®/g, "<sup>®</sup>");
$("body").html(html);
});
JSFiddle:http://jsfiddle.net/zphv6/
基本上将正文的HTML作为字符串抓取,执行正则表达式搜索/替换,并用新字符串替换正文的HTML。
答案 2 :(得分:0)
这取决于角色放置在HTML中的方式,但它可能就像这样简单 -
$("body").children().each(function() {
$(this).html($(this).html().replace(/\®/g,"<sup>®</sup>"));
});