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、2つの間に存在する'の数を数えたいです。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 に答える