我现在一直在网上搜索几个小时,但我仍然无法弄明白。
<table>
<tr>
<th class="name">Name</th>
<th class="age">Age</th>
<th class="nick">Nick</th>
</tr>
<tr>
<td>John</td>
<td>30</td>
<td>Johnny</td>
</tr>
<tr>
<td>Robert</td>
<td>35</td>
<td>Bob</td>
</tr>
</table>
有没有办法将这些标题中的类附加到同一列中的TD标记?
答案 0 :(得分:4)
我会这样做:
$("table th").each(function(i, val) {
var th = $(this);
var selector = "td:nth-child(" + (i+1) + ")";
th.parent().siblings().find(selector).attr("class", th.attr("class"));
});
它使用:nth-child
selector在同一列中有效地获得相同的<td>
。如果你使用rowspan / colspan元素,它就会崩溃。
注意:您必须在索引中添加一个,因为each()
上的索引从零开始,但:nth-child()
是从一开始的。
此外,您不能在此上下文中使用:eq
选择器,因为它只匹配单个元素。