单击链接里面的列表项索引的索引

时间:2013-05-27 17:49:21

标签: javascript jquery indexing onclick

我在这里读到很多关于获得指数价值的问题。

我知道如何获取点击索引号的li。但是,我需要在单击其中的链接时获取li值。

<ul>
   <li><a class=link href="#"></a></li>
   <li><a class=link href="#"></a></li>
   <li><a class=link href="#"></a></li>
   <li><a class=link href="#"></a></li>
</ul>


$("li a.link").click(function(e) {
    var i = $(this).index();
       alert(i)
});

它不起作用,因为它的索引为a.link而不是ul li。如何点击特定的li时,如何获得a.link的索引?

2 个答案:

答案 0 :(得分:3)

您可以使用jQuery的parent()选择器来定位所点击的锚链接的父元素的索引。

在这种情况下,它将是:$(this).parent().index();

$("li a.link").click(function(e) {
    var i = $(this).parent().index();
    alert(i);
});

如果你想获得实物编号(例如,第一个返回一个,第二个返回两个),你只需要在选择器中添加一个:

$("li a.link").click(function(e) {
    var i = $(this).parent().index() + 1;
    alert(i);
});

答案 1 :(得分:0)

您可以采取两种方法:计算点击的li所在的位置,或预先对它们进行编号。第二个更有效(点击时间恒定):

var li_elems = $('li.link'),
    i = 0,
    len = li_elems.length;

for (; i < len; i++) {
   li_elems[i].attr('index', i);
}

$('ul').on('click', 'li.link', function (e) {
  var index = this.getAttribute('index');
  alert(index);
});