3

我需要知道一个项目在 HTML 列表中的位置。

<ul>
  <li>first</li>
  <li>second</li>
  <li>third</li>
</ul>

$('ul').on("click", function(event){
  var target = event.target;
})

所以当我得到第一个li作为事件的目标时。我怎样才能得到0项目位置的结果。我能想到的唯一方法是遍历所有项目并将它们与事件目标进行比较,但我想知道是否有更好的方法来解决这个问题。

4

3 回答 3

3

你可以使用:

$('ul').on("click", function(event){
  var target = event.target,
      index = $(target).index();
  console.log(target, index);
})

JS 小提琴演示

参考:

于 2013-03-04T14:32:25.913 回答
2
var listItem = $(event.target);
alert('Index: ' + $('ul > li').index(listItem));
于 2013-03-04T14:32:27.480 回答
1
$('ul li').on("click", function(){
var index = $(this).index();
alert(index);
})

http://jsfiddle.net/6QZbT/

于 2013-03-04T14:36:38.327 回答