2

我有一个具有以下结构的简单表:

<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有没有办法做到这一点?

4

3 回答 3

3

Besides the markup is not valid, but for your example you can use something like this:

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

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

于 2012-06-08T17:56:08.377 回答
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

笔记

你的标记是错误的,避免它。

于 2012-06-08T18:06:04.520 回答
1

尝试一个简化的迭代器来获得所有tbody长度theads

var tbodyM = [];
$('table thead').each (function (idx) {
    tbodyM.push($(this).nextUntil('thead').length);
});

演示:http: //jsfiddle.net/XUjcr/2/

于 2012-06-08T18:10:36.817 回答