jQuery:获取tr内td的序号

4

我在一个HTML表格中有一行只包含图片(这恰好是第一行)。这些图片也被绑定到了点击事件。当尝试处理点击事件时,我可以找到其父元素(即<td>元素)。但我想知道它在表格行中的相对顺序(<tr>)。

2个回答

5

使用index()函数可以找到元素的序号:

$('td img').click(function() {
   var ordinal = $(this).closest('tr').children().index($(this).parent());
   // ...
});

我知道这是旧的代码,但我刚试了一下,序数始终为-1 :/$("td").click(function () { var ordinal = $(this).closest('tr').children().index($(this).parent()); alert(ordinal); }); - Nieszka
1
你应该执行以下代码:$("td").click(function () { var ordinal = $(this).closest('tr').children().index(this); alert(ordinal); }); 原本代码中的 $(this).parent() 是因为 this 指向 td 内部的 img 元素,但在你的情况下,this 就是 td 本身。 - reko_t

1

当前元素之前的元素数量将是它在 DOM 中相对于父级的索引。您可以使用 .prevAll() 并获取结果集的长度:

$('td').click(function(){
  alert($(this).prevAll().length);
});

在 jsfiddle 上提供了演示


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接