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

ili*_*ian 21 jquery

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

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

用html看起来像这样;

<table>
<tbody>
    <tr><td>click</td></tr>
    <tr><td>click</td></tr>
    <tr><td>click</td></tr>
    <tr><td>click</td></tr>
</tbody>
Run Code Online (Sandbox Code Playgroud)

谢谢

Rob*_*Rob 38

你有没有尝试过:

$("tr").index(this)
Run Code Online (Sandbox Code Playgroud)

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

// haven't tested this
$("tr", $(this).closest("table")).index(this) 
Run Code Online (Sandbox Code Playgroud)

  • 从行内的一个孩子,$(this).closest("tr").index()就可以了.此答案中的第二个选项不起作用. (2认同)

Ate*_*ral 11

尝试:

var index = $("table tr").index(this);
Run Code Online (Sandbox Code Playgroud)

文档index()说:

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

您需要调用元素index()集合<tr>,而不是父元素<table>.