找到第一行的跨越列的相应td of second

时间:2013-11-21 15:35:36

标签: jquery

我的表结构为

<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并尝试了一些公式来计算相同但不起作用的

1 个答案:

答案 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/

<强>参考: