Javascript 特定表列号上的jQuery类计数

Javascript 特定表列号上的jQuery类计数,javascript,jquery,Javascript,Jquery,我已经做了一段时间了,如果有人有任何想法,我想知道实现我目标的最佳方式 例如: <table> <tbody> <tr> <td>Hello</td> <td>Hello (I want to check this column)</td> </tr> <tr> <td>Hello 2</td> <td class="active">Hello 2 (t

我已经做了一段时间了,如果有人有任何想法,我想知道实现我目标的最佳方式

例如:

<table>
<tbody>
<tr>
<td>Hello</td>
<td>Hello (I want to check this column)</td>
</tr>
<tr>
<td>Hello 2</td>
<td class="active">Hello 2 (this column)</td>
</tr>
</tbody>
</table>
显然,这得到了td的所有活动类,而我只需要第二列。我试过:

var length = $(self).closest("tbody").find("tr").find("td:eq(1).active").length;
这是行不通的


有什么想法吗?

如果我理解正确,您希望获得第二列(而不是问题中所示的第一列)中的表单元格,这些单元格上有类
活动。如果是这种情况,您可以使用以下选项:

var length = $(self).closest('tbody').find('tr').find('td:eq(1)').filter('.active').length;

如果我理解正确,您希望获得第二列中的表单元格(不是问题中指出的第一列),这些单元格上的类
处于活动状态。如果是这种情况,您可以使用以下选项:

var length = $(self).closest('tbody').find('tr').find('td:eq(1)').filter('.active').length;

我认为您的选择器没有达到您期望的效果。我本可以期待您的期望,但请查看
eq()
文档中的这一段(我的重点):

注意,由于JavaScript数组使用基于0的索引,因此 选择器反映了这一事实。这就是为什么$('.myclass:eq(1)')选择 文档中类为myclass的第二个元素,而不是 第一个。相反,:n子级(n)使用基于1的索引来符合 符合CSS规范

因此,您需要在不使用类选择器的情况下使用
td:eq(1)
,然后过滤结果,然后对结果进行计数:

var length = $(self).closest("tbody").find("td:eq(1)").filter(".active").length;

希望有帮助

我认为您的选择器没有达到您期望的效果。我本可以期待您的期望,但请查看
eq()
文档中的这一段(我的重点):

注意,由于JavaScript数组使用基于0的索引,因此 选择器反映了这一事实。这就是为什么$('.myclass:eq(1)')选择 文档中类为myclass的第二个元素,而不是 第一个。相反,:n子级(n)使用基于1的索引来符合 符合CSS规范

因此,您需要在不使用类选择器的情况下使用
td:eq(1)
,然后过滤结果,然后对结果进行计数:

var length = $(self).closest("tbody").find("td:eq(1)").filter(".active").length;

希望有帮助

eq是基于0的,所以可能尝试eq(0)eq(0)将意味着第一个,所以eq(1)将是第二个,这是我试图实现的,但你说……当我只想要第一列时。此外,什么是“自我”?对不起,我将把我的问题改为只想要第二列。eq是基于0的,所以可能尝试eq(0)eq(0)将意味着第一列,所以eq(1)将是第二列,这是我试图实现的,但你说……当我只想要第一列时。此外,什么是“自我”?对不起,我将把我的问题改为只想要第二栏。啊哈,过滤器似乎就是我要找的,很有魅力-谢谢!你的答案无效,也与你的小提琴不匹配。啊哈,过滤器似乎就是我要找的,很有魅力-谢谢!你的答案不起作用,也与你的小提琴不匹配。回答正确,但你不幸获得了第二名:(谢谢你!@thedixon-不担心;只是偶尔发生。干杯!回答正确,但你不幸获得了第二名:(谢谢你!@thedixon-不担心;只是偶尔发生。干杯!