2013-07-07 16 views
0

如何在包含類「data」的表格單元格中的數字(而不是數字)周圍包含span而不是$字符?只用jQuery包圍數字

這裏的HTML標記:

<table> 
    <tr> 
     <th>Description</th> 
     <th>Weight</th> 
     <th>Views</th> 
     <th>Cost</th> 
    </tr> 

    <tr> 
     <td>Item description here</td> 
     <td class="data">37 pounds</td> 
     <td class="data">132 views</td> 
     <td class="data">$99.59</td> 
    </tr> 
</table> 
+3

你能提供你已經嘗試實現你找什麼碼? –

+0

您可以逐個查看字符串中的字符,當您達到第一個數字時,可以在前面放置'',類似於第一個非數字字符和'',或者您可以使用「regular表達式和'.replace()' – david

+0

對不起,我是一個jQuery初學者,我完全不知道如何做到這一點......我一直在研究在stackoverflow的答案,但沒有發現任何東西。 – amp511

回答

5

您需要使用Regular Expression來匹配數字並用span包裝它們。

var rxp = new RegExp("([0-9]+\.?[0-9]+)", "gm"); 
$("td.data").each(function(){ 
    var $this = $(this); 
    var content = $this.html(); 
    $this.html(content.replace(rxp, "<span>$1</span>")); 
}); 

test case on jsFiddle

+0

完美!非常感謝! – amp511

+0

這個正則表達式只包含了超過1位數的數字。當你只有一個數字時,它不會換行。 –

0

您可以使用正則表達式:

var searchPattern = new RegExp(/^\d+$/, 'g'); 
$elem = $('td.data'); 
$elem.html($elem.html().replace(searchPattern , "<span>" + searchPattern + "</span>")); 

其中,$ ELEM是您正在搜索的HTML元素的jQuery對象,即所有TD帶班'數據'。

+1

你沒有考慮到點的存在,這些數字可能不是從開始,也不是在最後TD。 –