计算两个`线程之间的tbody'

时间:2012-06-08 17:54:13

标签: javascript jquery html-table

我有一个具有这种结构的简单表:

<table>
    <thead>
        <tr>
            <td>Some info</td>
            <td>Some info</td>
            <td>Some info</td>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>Some info</td>
            <td>Some info</td>
            <td>Some info</td>
        </tr>
    </tbody>
    <tbody>
        <tr>
            <td>Some info</td>
            <td>Some info</td>
            <td>Some info</td>
        </tr>
    </tbody>

    <thead>
        <tr>
            <td>Some info</td>
            <td>Some info</td>
            <td>Some info</td>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>Some info</td>
            <td>Some info</td>
            <td>Some info</td>
        </tr>
    </tbody>
</table>

我想要计算使用jQuery(或普通Javascript)在两个tbody之间存在多少thead。有没有办法做到这一点?

3 个答案:

答案 0 :(得分:3)

此外,标记无效,但对于您的示例,您可以使用以下内容:

$("table thead:first")​​​​.nextUntil("thead").length​​​​​

DEMO: http://jsfiddle.net/XUjcr/

答案 1 :(得分:1)

您可以制作通用功能

function countHeader(pos1, pos2) {
   return $('table thead:eq('+ pos1 +')').nextUntil('thead:eq('+ pos2 +')').length;
}

使用:

countHeader(0, 1); // from first to second

countHeader(1, 2); // from second to third

注意

您的标记错误,请避免使用。

答案 2 :(得分:1)

尝试使用简化的迭代器,以获得tbody

之间的所有theads长度
var tbodyM = [];
$('table thead').each (function (idx) {
    tbodyM.push($(this).nextUntil('thead').length);
});

DEMO: http://jsfiddle.net/XUjcr/2/