2010-10-03 58 views
1

我有一個包含不同動態生成內容的表。 我該怎麼做,只有數字裏面的所有文字將對齊到正確的?如何將​​與位於右側的數字對齊,jQuery

嗯,我知道如何CSS添加一些元素,但問題是如何讓只有數字

謝謝TDS!

+0

你想要包含* only *數字的表格單元格爲'text-align:right'? – 2010-10-03 21:30:39

+0

exatcly,David和其他人不變 – 2010-10-03 21:32:14

+0

和'數字'我也意味着這樣的內容:'32 784,63' – 2010-10-03 21:37:23

回答

3

可以使用filter選項:

$('td').filter(function() { 
    return this.innerHTML.match(/^[0-9\s\.,]+$/); 
}).css('text-align','right');

這將匹配「123」, 「12 3」,「12.3」和「12,3」但不是「abc」,「abc123」等。

+0

這很好,非常感謝! – 2010-10-03 21:51:55

+0

以及如果有' '符號而不是空格鍵會發生什麼變化? – 2010-10-03 22:25:31

+0

我不確定你是否可以通過這種方式匹配'\ s'或' '(沒有匹配例如「12nb」),但是這會起作用:'this.innerHTML.replace(' ','' ).match(/^[0-9 \ s \。,] + $ /);' – Alec 2010-10-03 22:53:58

0

你的問題是不是真正清楚,但你可以對齊,就在這樣的任意單元格:

<td align="right">123</td> 
+0

他需要一個jQuery選擇器來定位僅包含數字的表格單元格。 – Alec 2010-10-03 21:32:44

+0

我閱讀它的方式 - 我正在採取一個巨大的直觀的飛躍 - 是單元格中的數據是動態生成的。所以他需要JS/jQuery來查找那些只有數字的單元格,然後使用「text-align:right」。但不幸的是,我大部分都在猜測。 – 2010-10-03 21:33:45

+0

問題是,我不知道該單元格是否只包含數字,這就是爲什麼我需要js/jQuery解決方案 – 2010-10-03 21:35:00

0

我建議一些jQuery,我嘲笑了jsbin

$(document).ready(function(){ 
    $("td").each(function(index, item){  

     if(isNaN($(item).text()) == false){ 
      $(item).addClass("match"); 
     } 
    }); 
}); 
+1

然後,您可能想要轉到[編輯幫助](http:// stackoverflow.com/editing-help)快速查看=) – 2010-10-03 22:06:06

2

如果你想要一個jQuery上下的解決方案,一種方法是使用自定義選擇:

$.expr[':'].isNumeric = function(obj){ 
    return !isNAN($(obj).text()); 
}; 

然後:

$('td:isNumeric').addClass('numeric'); 

即假設風格:

td.numeric { text-align: right; } 

...或者如果您願意:

$('td:isNumeric').css('text-align','right'); 
0

亞歷克的精彩回答一個更好的變化,是

$('td').filter(function() { 
    return this.innerText.match(/^[-?0-9\s\.,]+$/); 
}).css('text-align', 'right'); 

這也捕捉負數並且將多細胞的文本內容,而不是它失敗的情況下,像

<td> 
<div>1.49</div> 
</td> 
HTML內容
相關問題