2011-04-27 42 views
0

如何能够选择部分字符并添加一个类或使用jQuery为这些字符/文本添加标签?jQuery选择部分文本/字符和addClass或标记

这里是代码我有玩:

<b><font class="pricecolor colors_productprice specialprice"> 
    <font class="text colors_text"><b>Regular Price:<br></b></font> 
     $2,492.38 
    </font> 
</b> 

<a class="pricecolor colors_productprice specialprice" href="javascript:void(0);"> 
<b><div id="emailprice">Click Here For Price!</div></b></a> 

我想让它是这样的:

<font class="text colors_text"><b>Regular Price:<br></b></font> 
    $2,492<sup>.38</sup> 

+0

将价值是数值的所有时间和您将n十进制后的东西是否标上了上标? – Jaspero 2011-04-27 17:55:38

+0

这是正确的,它会一直是数字。我有许多产品的价格从$ 10,000.00一路下降到$ 1.00左右。 – ToddN 2011-04-27 18:04:39

回答

2

这个怎么样对你的工作..

$(document).ready(function(){ 
    $('.pricecolor').html(
     $('.pricecolor').html().replace(/\.\d{1,2}/, 
      function(a){ 
       return '<sup>' + a + '</sup>'; 
      }) 
    ); 
}); 

Fiddle here

编辑:

下面是正则表达式是这样做的:

  • \. - 寻找一个点
  • \d{1,2}后面跟着一个或两个数字

显然正确格式可能是点在这种情况下,表现应该简单地/\.\d{2}/后两位数字,但我已经看到一些网站上一些奇怪的格式,因此决定包括:)

+0

你能简单地解释一下'.replace(/ \。\ d [1,2] /'在做什么吗? – ToddN 2011-04-27 18:11:42

+0

@ Demian-Brecht:我有另外一个困境:在一个包含多个产品的分类页面上,有些产品有两个相同的字体类,我只需要在字体类的第一个'.colorcolor'不是每个'td'出现的第二个字体类,我会更新问题 – ToddN 2011-04-27 18:29:53

+0

我已经知道了,我只需要添加' font.pricecolor' – ToddN 2011-04-27 18:40:39

0

可能使用一些正则表达式和替换()aplyed到innerHTML之中。 ?

1

两行代码...

parts = $('.pricecolor').html().split('.'); 
$('font.pricecolor').html(parts[0]+".<sup>"+parts[1]+"</sup>"); 
+0

+1:当我使用正则表达式时,我总是喜欢非正则表达式的解决方案。必须是我还没有完成我今天的第一杯咖啡;) – 2011-04-27 18:25:03