如何与右边的数字对齐,jQuery

时间:2010-10-03 21:24:29

标签: jquery css alignment

我的桌子里面有不同的动态生成内容。 我怎么能这样做只有里面的数字会在右边有文字对齐?

嗯,我知道如何将css添加到某个元素,问题是如何只获得带有数字的tds

谢谢!

5 个答案:

答案 0 :(得分: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”等。

答案 1 :(得分:2)

如果你想要一个jQuery-ish解决方案,一种方法是使用自定义选择器:

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

然后:

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

假设风格:

td.numeric { text-align: right; }

......或者如果您愿意:

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

答案 2 :(得分:0)

你的问题不是很明确,但你可以在任何一个单元格中对齐:

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

答案 3 :(得分:0)

我建议一些jquery,我已经在jsbin上嘲笑了。

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

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

答案 4 :(得分:0)

Alec的精彩答案的更好的变化是

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

这也会捕获负数,并且会更多地显示单元格的文本内容,而不是在

等情况下失败的html内容
<td>
<div>1.49</div>
</td>