我的桌子里面有不同的动态生成内容。 我怎么能这样做只有里面的数字会在右边有文字对齐?
嗯,我知道如何将css添加到某个元素,问题是如何只获得带有数字的tds
谢谢!
答案 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>