我有一個包含不同動態生成內容的表。 我該怎麼做,只有數字裏面的所有文字將對齊到正確的?如何將與位於右側的數字對齊,jQuery
嗯,我知道如何CSS添加一些元素,但問題是如何讓只有數字
謝謝TDS!
我有一個包含不同動態生成內容的表。 我該怎麼做,只有數字裏面的所有文字將對齊到正確的?如何將與位於右側的數字對齊,jQuery
嗯,我知道如何CSS添加一些元素,但問題是如何讓只有數字
謝謝TDS!
可以使用filter
選項:
$('td').filter(function() {
return this.innerHTML.match(/^[0-9\s\.,]+$/);
}).css('text-align','right');
這將匹配「123」, 「12 3」,「12.3」和「12,3」但不是「abc」,「abc123」等。
這很好,非常感謝! – 2010-10-03 21:51:55
以及如果有' '符號而不是空格鍵會發生什麼變化? – 2010-10-03 22:25:31
我不確定你是否可以通過這種方式匹配'\ s'或' '(沒有匹配例如「12nb」),但是這會起作用:'this.innerHTML.replace(' ','' ).match(/^[0-9 \ s \。,] + $ /);' – Alec 2010-10-03 22:53:58
你的問題是不是真正清楚,但你可以對齊,就在這樣的任意單元格:
<td align="right">123</td>
他需要一個jQuery選擇器來定位僅包含數字的表格單元格。 – Alec 2010-10-03 21:32:44
我閱讀它的方式 - 我正在採取一個巨大的直觀的飛躍 - 是單元格中的數據是動態生成的。所以他需要JS/jQuery來查找那些只有數字的單元格,然後使用「text-align:right」。但不幸的是,我大部分都在猜測。 – 2010-10-03 21:33:45
問題是,我不知道該單元格是否只包含數字,這就是爲什麼我需要js/jQuery解決方案 – 2010-10-03 21:35:00
我建議一些jQuery,我嘲笑了jsbin。
$(document).ready(function(){
$("td").each(function(index, item){
if(isNaN($(item).text()) == false){
$(item).addClass("match");
}
});
});
然後,您可能想要轉到[編輯幫助](http:// stackoverflow.com/editing-help)快速查看=) – 2010-10-03 22:06:06
如果你想要一個jQuery上下的解決方案,一種方法是使用自定義選擇:
$.expr[':'].isNumeric = function(obj){
return !isNAN($(obj).text());
};
然後:
$('td:isNumeric').addClass('numeric');
即假設風格:
td.numeric { text-align: right; }
...或者如果您願意:
$('td:isNumeric').css('text-align','right');
亞歷克的精彩回答一個更好的變化,是
$('td').filter(function() {
return this.innerText.match(/^[-?0-9\s\.,]+$/);
}).css('text-align', 'right');
這也捕捉負數並且將多細胞的文本內容,而不是它失敗的情況下,像
<td>
<div>1.49</div>
</td>
HTML內容
你想要包含* only *數字的表格單元格爲'text-align:right'? – 2010-10-03 21:30:39
exatcly,David和其他人不變 – 2010-10-03 21:32:14
和'數字'我也意味着這樣的內容:'32 784,63' – 2010-10-03 21:37:23