javascriptreplace®和html标签

时间:2014-08-26 17:23:14

标签: javascript jquery html

我正在努力删除尽可能多的常见案例,并在整个网站上对其进行统一。

我希望他们看起来像:

Dashing Company ®

这是我到目前为止所做的工作:

HTML

<body>
    <p>Dashing Company&reg;</p>
    <p>Dashing Company<sub>&reg;</sub></p>
    <p>Dashing Company<span>&reg;</span></p>
    <p>Dashing Company<sup>&reg;</sup></p>
</body>

Javascript / jQuery

$(document).ready(function() {
    $("body").html(
        $("body").html()
            .replace("<sub>&reg;</sub>", "&reg;")
            .replace('<div>&reg;</div>', "&reg;")
            .replace('<span>&reg;</span>', "&reg;")
            .replace('<sup>&reg;</sup>', "&reg;")
            .replace("®", "&reg;")
            .replace(/&reg;/g, '&reg;')
            .replace(/®/g, '&reg;')
            .replace("\u00AE" , '&reg;')
            .replace('&reg;', '<sup>&reg;</sup>')
    ); 
});

小提琴时间(已更新):http://fiddle.jshell.net/w94z8vf1/8/

如何让所有<p>单独包含<sup>&reg;</sup>(公司名称旁边)?

2 个答案:

答案 0 :(得分:2)

您可以使用contents().unwrap()功能删除<sub><span><div>等。

$('sup').contents().unwrap();

答案 1 :(得分:0)

我想这就是你想要的:

$(document).ready(function() {
  $("body").html(
    $("body").html().replace("<sub>&reg;</sub>", "&reg;")
        .replace('<div>&reg;</div>', "&reg;")
        .replace('<span>&reg;</span>', "&reg;")
        .replace('<sup>&reg;</sup>', "&reg;")
        .replace('<sub>®</sub>', "&reg;")
        .replace('<sup>®</sup>', "&reg;")
        .replace('<div>®</div>', "&reg;")
   );

});

注意:您不能在段落中包含块元素,这就是<div>&reg;</div>超出段落标记的原因。