【发布时间】:2013-11-26 08:33:59
【问题描述】:
假设我有以下 html:
<table>
<thead>
<tr>
<th class="alignRight">Header1</th>
<th>Header2</th>
<th class="alignLeft">Header3</th>
</tr>
</thead>
<tbody>
<tr>
<td>Row1</td> //Add class="alignRight"
<td>Row1</td>
<td>Row1</td> //Add class="alignLeft"
</tr>
<tr>
<td>Row2</td> //Add class="alignRight"
<td>Row2</td>
<td>Row2</td> //Add class="alignLeft"
</tr>
<tr>
<td>Row3</td> //Add class="alignRight"
<td>Row3</td>
<td>Row3</td> //Add class="alignLeft"
</tr>
</tbody>
</table>
如果 THEAD 中的 TR 包含类“alignRight”或“alignLeft”,我想将相同的类应用于 TBODY 中的相应 TD。
我正在使用 JQuery 并尝试了以下方法,但它们似乎都不能正常工作:
$('tr').has('th.alignRight').addClass('th.alignRight');
$('tr').has('th.alignLeft').addClass('th.alignLeft');
$('thead.tr').has('th.alignRight').addClass('tbody.th.alignRight');
$('thead.tr').has('th.alignLeft').addClass('tbody.th.alignLeft');
if ($('thead.tr').has('th.alignRight')){
$('tbody.tr').addClass('th.alignRight');
}
if ($('thead.tr').has('th.alignRight')){
$('tbody.tr.td').addClass('alignRight');
}
对可能出现的问题有任何想法吗?
更新:
我想补充一点,我已经使用 .each() 循环遍历了表。我只需要添加条件,如果当前表头具有该类,则将相同的类添加到表格单元格中。在当前迭代期间添加额外的迭代听起来会导致性能问题。这是真的吗?
循环:
function(res) {
var tbl_body = "";
$.each(res, function () {
var tbl_row = "";
$.each(this, function (k, v) {
//Irrelevant code
tbl_row += "<td>" + v + "</td>";
})
tbl_body += "<tr>" + tbl_row + "</tr>";
})
$("#print").html(tbl_body);
},
//Other irrelevant code
【问题讨论】:
-
请发布您的循环。但在所有情况下,您都必须循环访问您的
tds。 -
@OlivierH res = 结果。在这种情况下不使用它。
-
我不明白你的循环,以及如何修改它来放置类。稍后再做一个循环,就像我们写的那样:你不会有性能问题,除非你的表有数千行。
标签: javascript jquery html html-table