在同一页面上选择多个表

时间:2013-01-02 01:17:03

标签: jquery html html-table this

我在同一页面上有几张桌子。我正在尝试编写jQuery代码,它将单独计算页面上每个表的行数,并根据行数是偶数还是奇数,将不同的CSS应用于每个单独的表。

使用jQuery的.each函数,我可以选择每个表。但我需要一种方法来使用“this”关键字计算该单个表中的行数。如果只有一个表我可以使用

var amountOfRows = $(".data  tbody  tr").length;

但由于有多个表,我需要一些代码,它们包含“this”关键字,以分别获取每一行的长度。

所以我真的只是想知道如何使用“this”关键字来读取我页面上每个表的行数。

这是一个基本的jsfiddle:http://jsfiddle.net/49jNn/1/

这是我的HTML代码的简化版本,我有2-4页。

<table class="data">
    <thead>
        //head row
    </thead>
    <tfoot>
        //footer row
    </tfoot>

    //I want the number of these rows
    <tr>
        //multiple <td>
    </tr>
    <tr>
        //multiple <td>
    </tr>
    <tr>
        //multiple <td>
    </tr>
</table>

到目前为止,我的jQuery代码能够遍历页面上的#个表。

$('table').each(function() {
    alert("table");
});

2 个答案:

答案 0 :(得分:3)

您可以使用$(selector, context);

$('tbody tr', this).length;

find方法:

$(this).find('tbody tr').length;

答案 1 :(得分:0)

在您的每个选择器中,您可能想尝试这样的事情,

$('table').each(function(e, table) {
    console.log(['Table length', $(table).find('tbody tr').length]);
});​

其中e将成为索引,table是每个语句中的当前表。

$(table)将获取javascript对象并将其作为jQuery对象引用,这将允许您使用.find('tbody tr')来获取该表中的行。