【发布时间】:2014-06-30 10:48:57
【问题描述】:
几乎拥有它 - 用动态数据描绘一个表格 - 这可以右对齐表格中的日期和数字列但踢球者是我还想右对齐相应 <thead><th> 列中的标签列。如果我了解幕后情况,下面的这个方法一次只运行一行,如果有匹配项,它会将text-align:right 应用于<td>。因此,如果对找到正则表达式匹配的表中的每个 tr 执行此操作,它将执行 text-align: right 到 <th>,如果我有 100 行,那么它不会尝试执行 500 x。我如何更好地执行此操作以在正则表达式匹配时右对齐标签。
$('tr').each( function ()
{
// right align any numeric columns
$(this).children('td:gt(0)').filter(function()
{
return this.innerHTML.match(/^[0-9\s\.,]+$/);
}).css('text-align','right');
// right align any date columns in ddmmmyyyy format
$(this).children('td:gt(0)').filter(function()
{
return this.innerHTML.match(/\d{1,2}\w{3}\d{2,4}/);
}).css('text-align','right');
});
HTML:
<thead><tr><th>Name</th><th>Age</th></tr></thead>
<tbody>
<tr><td>Silly Me</td><td>29</td></tr>
<tr><td>Not again</td><td>48</td></tr>
....
</tbody>
因此它将遍历文档并在第二行看到一个数字列。所以我想要右对齐以及相应的列,但我们只对行执行一次。
有意义吗?
【问题讨论】:
-
您希望混合值列如何?如果您(无论出于何种原因)的“姓名”为
12345,该怎么办? -
因为你有一个“年龄”列设置所有年龄
tds 和一个类并设置CSS:<td class='age'>...和CSStd.age { text-align:right; }
标签: jquery css dynamic html-table