如何使用jquery在表中查找行的索引

我正在尝试在表中找到行的索引。 我正在尝试使用以下代码,但我似乎得到-1的索引。

$(document).ready(function() { $("tr").click(function (){ var index = $("table").index($(this)); $("span").text("That was row index #" + index); }); }); 

用html看起来像这样;

 

谢谢

你有没有尝试过:

 $("tr").index(this) 

文档显示只是传递它,并且前面的选择应该是找到节点的位置。 如果您需要在特定的表中找到它(并且有多个),您可能需要提供一些上下文:

 // haven't tested this $("tr", $(this).closest("table")).index(this) 

尝试:

 var index = $("table tr").index(this); 

index()的文档说:

搜索对象的每个匹配元素,并返回元素的索引(如果找到),从零开始。 如果传递了jQuery对象,则只检查第一个元素。

您需要在

元素的集合上调用index() ,而不是父

click
click
click
click

基于Robs回答在特定表中查找索引,这对我有用。

 var index = $('tr', $(this).closest("table")).index(this); 

我刚刚发现了一个有趣的技巧,它基本上包括计算以前的兄弟姐妹:

 var tr = $(some_selector); var rowIndex = tr.prevAll().length; 

这样,如果这是第一个tr ,你将得到0,如果这是第4个tr ,你将得到3,等等。

只是为了它,使用index()另一个选项,它使您不必知道如何选择包含表:

 var rowIndex = tr.parent().children().index(tr);