切换可变数量的表行

时间:2012-12-19 15:13:36

标签: javascript jquery html-table

我有一个表格,点击链接应该显示属于单击行中数据的“子行”。

由于子数可能在0到n之间变化,我想我应该用.val方法计算子数,这是对的吗?因此,值应该是具有类名“affiliated”的隐藏行的数量,直到下一个没有类名的tr。我怎样才能做到这一点? 我做了一些尝试,但我对jQuery很新。

我想这样计算tr.affiliated的数量:

 var affiliatednumber = $(this).find("tr.affiliated").val().stop();

DEMO

2 个答案:

答案 0 :(得分:8)

如果你在每个家长tr上放一个课程,你可以像这样使用nextUntil()

<tbody>
    <tr class="parent">
        <td>John</td>
        <td>HR Admin</td>
        <td>10/10/1980</td>
        <td>Yes</td>
        <td><a class="showaffiliated" href="#">Yes</a></td>
    </tr>
    <tr class="affiliated">
        <td colspan="2">Amanda</td>
        <td colspan="3">20/20/1985</td>
    </tr>
    <tr class="affiliated">
        <td colspan="2">Louis</td>
        <td colspan="3">20/10/2010</td>
    </tr>
</tbody>
$("tr.affiliated").hide();

$("a.showaffiliated").click(function() {
    var $affiliated = $(this).closest(".parent").nextUntil(".parent");
    $affiliated.toggle();
    var affiliatednumber = $affiliated.length;
});

Example fiddle

答案 1 :(得分:3)

http://jsfiddle.net/6t6QT/2/

您对.val.stop的使用没有意义,并且您没有使用输入而是使用a。我使用.nextUntil,因为行将组合在一起;只需找到a最近的父行(这是“主”行)并使用.nextUntil查找其附属行 - 接下来直到另一个主行。如果主行有自己的类,它也会有所帮助。