我在同一页面上有几张桌子。我正在尝试编写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");
});
答案 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')来获取该表中的行。