如何使用jquery在表中查找行的索引
我正在尝试在表中找到行的索引。 我正在尝试使用以下代码,但我似乎得到-1的索引。
$(document).ready(function() { $("tr").click(function (){ var index = $("table").index($(this)); $("span").text("That was row index #" + index); }); });
用html看起来像这样;
click click click click
谢谢
你有没有尝试过:
$("tr").index(this)
文档显示只是传递它,并且前面的选择应该是找到节点的位置。 如果您需要在特定的表中找到它(并且有多个),您可能需要提供一些上下文:
// haven't tested this $("tr", $(this).closest("table")).index(this)
尝试:
var index = $("table tr").index(this);
index()
的文档说:
搜索对象的每个匹配元素,并返回元素的索引(如果找到),从零开始。 如果传递了jQuery对象,则只检查第一个元素。
您需要在
元素的集合上调用index()
,而不是父
。
基于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);