2011-04-27 41 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