我的表结构为
<table>
<thead>
<tr>
<td id='td1' rowspan="2"></td>
<td id='td2' rowspan="2"></td>
<td id='td3' rowspan="2"></td>
<td id='td4' colspan="2"></td>
<td id='td5' colspan="2"></td>
<td id='td6' rowspan="2"></td>
<td id='td7' rowspan="2"></td>
<td id='td8' colspan="4"></td>
</tr>
<tr>
<td id='td9'></td>
<td id='td10'></td>
<td id='td11'></td>
<td id='td12'></td>
<td id='td13'></td>
<td id='td14'></td>
<td id='td15'></td>
<td id='td16'></td>
</tr>
</thead>
<tbody>
<tr>
<td ></td>
<td ></td>
<td ></td>
<td ></td>
<td ></td>
<td ></td>
<td ></td>
<td ></td>
<td ></td>
<td ></td>
<td ></td>
<td ></td>
<td ></td>
<td ></td>
<td ></td>
<td ></td>
</tr>
</tbody>
</table>
我需要从thead第二行找到对应于第一行td的所有td,这些td是用colpan跨越的。
我曾尝试找到childslength并尝试了一些公式来计算相同但不起作用的
答案 0 :(得分:0)
你需要的是这样的东西:
我使用了元素的索引而不是它们的ID,因此您可以将它们更改为您想要的任何内容。
$("tr:eq(0) td[colspan]").click(function(){
var myIndex = $(this).index();
var myColspan = parseInt($(this).attr('colspan'));
var startingFrom = 0;
var previous = $("tr:eq(0) td:lt(" + myIndex + ")[colspan]").each(function(){
startingFrom += parseInt($(this).attr('colspan'));
});
// This is the list of results.
var elements = $("tr:eq(1) td").slice(startingFrom, startingFrom + myColspan);
// Just for checking
elements.each(function(){
alert($(this).attr('id'));
});
});
我只是将功能附加到'click'事件以进行演示。
查看我的小提琴,观看现场演示:http://jsfiddle.net/augusto1982/K3pA2/
<强>参考:强>
使用每项功能:http://api.jquery.com/each/
使用切片功能:http://api.jquery.com/slice/
摆弄使用选择器和属性匹配:http://jsfiddle.net/augusto1982/hafvf/