在所有商标和注册商标符号周围添加上标<sup>标签

Ty *_*ley 11 javascript jquery symbols superscript

我想<sup></sup>在我的页面中为每个™,®,© 添加标签.

我发现了这个问题:CSS上标注册商标让我开始了.

该脚本的工作原理是标签被放置在适当的位置,但是<sup></sup>每个标签周围添加两个标签而不是一个标签.

这是我的JS添加标签:

jQuery("body").html(
    jQuery("body").html().replace(/&reg;/gi, '<sup>&reg;</sup>').replace(/®/gi, '<sup>&reg;</sup>').
        replace(/&trade;/gi, '<sup>&trade;</sup>').
        replace(/™/gi, '<sup>&trade;</sup>').
        replace(/&copy;/gi, '<sup>&copy;</sup>').
        replace(/©/gi, '<sup>&copy;</sup>')
);
Run Code Online (Sandbox Code Playgroud)

如何确保每个符号只添加一次标记?某种条件可能吗?

Vis*_*ioN 24

我没有重写整个标记(并删除所有绑定事件),而是采取类似的方式:

$('body :not(script)').contents().filter(function() {
    return this.nodeType === 3;
}).replaceWith(function() {
    return this.nodeValue.replace(/[™®©]/g, '<sup>$&</sup>');
});
Run Code Online (Sandbox Code Playgroud)

演示: http ://jsfiddle.net/QTfxC/

  • @TyBailey当然.只需添加`<sup>`标签进行过滤,即`:not(script,sup)`.**演示:**http://jsfiddle.net/QTfxC/1/. (6认同)