找到点击的li号码

时间:2010-05-28 08:31:34

标签: javascript jquery

我有一个标准清单。

<ul>
  <li><a href="#">blah 1</a></li>
  <li><a href="#">blah 2</a></li>
  <li><a href="#">blah 3</a></li>
  <li><a href="#">blah 4</a></li>
</ul>

我的jQuery:

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

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

6 个答案:

答案 0 :(得分:32)

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

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

jQuery index() method documentation

答案 1 :(得分:2)

您可以使用jquery`s index

获取元素的索引
$('ul li a').live('click', function() 
{
    var index =  $(this).index();
});    

答案 2 :(得分:2)

无需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);
});

答案 3 :(得分:2)

我知道这是一篇旧帖子,但{j} 1.7中已弃用.live并在jQuery 1.9中删除。

另一种方法是使用.delegate

$('ul li').delegate('a','click', function() {

    alert($(this).parent('li').index());

});

答案 4 :(得分:1)

index方法应该做你想要的。

答案 5 :(得分:1)

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