$('tr > td:gt(0)').filter(function() {
return this.innerHTML.match(/^[0-9\s\.,]+$/);
}).css('text-align','right');
我正在尝试遍历动态表并右对齐每行上包含数字数据的每个td,除了每行的第一个td。
它适用于第一个tr而不是每个后续行......
答案 0 :(得分:1)
这不起作用的原因是你的jQuery选择器正在收集所有td
元素(属于tr
s的子元素),然后子元素选择除第一个之外的所有。为避免这种情况,您可以迭代表格的各行,将过滤器应用于每个行的td
元素:
$('tr').each( function () {
$(this).children('td:gt(0)').filter(function() {
return this.innerHTML.match(/^[0-9\s\.,]+$/);
}).css('text-align','right')
});
如果您只想将其应用于某个表,请将第一行中的选择器更改为'#table-id tr'
。