找到点击的li号码

我有一个标准清单。

 

而我的jQuery:

 $('ul li a').live('click', function() { var parent = $(this).parent('li'); }); 

我想知道的是父李在点击链接列表中的位置,例如点击blah 3会给我2,blah 4会给3等等。

 $('ul li a').live('click', function() { console.log($(this).parent('li').index()); }); 

会给你你想要的东西,但请记住这些是基于0的索引 – 即第一个订单项是索引0,最后一个订单项是3。

jQuery index()方法文档

你可以使用jquery的索引获取元素的索引

 $('ul li a').live('click', function() { var index = $(this).index(); }); 

不需要jQueryfy这个:

 $('ul li a').live('click', function() { var position = 0; var currentNode = this; var firstNode = currentNode.parentNode.firstChild; while(firstNode != currentNode) { position++; currentNode = currentNode.previousSibling; } alert(position); }); 

索引方法应该做你想要的。

 $(function() { $('ul li a').live('click', function() { var parent = $(this).parent('li'); alert(parent.prevAll('li').size()); }); }); 

我知道这是一个旧post,但.live现在在jQuery 1.7中被弃用,并在jQuery 1.9中被删除。

另一种方法是使用.delegate

 $('ul li').delegate('a','click', function() { alert($(this).parent('li').index()); });