1

我的 html 看起来像这样

<div class="row1">
    <ul>
        <li>Item 1</li>
        <li>Item 2</li>
        <li>Item 3</li>
    </ul>
</div>
<div class="row2">
    <ul>
        <li>Item 1</li>
        <li>Item 2</li>
        <li>Item 3</li>
    </ul>
</div>
<div class="row3">
    <ul>
        <li>Item 1</li>
        <li>Item 2</li>
        <li>Item 3</li>
    </ul>
</div>

这是我的 jquery 来获取点击项目的索引:

$('li').click(function(){
 var ind = $(this).index();
 alert(ind);
});

这会提醒单击项目的索引。但是,row1、row2 和 row3 的项目 1 具有相同的索引。与 item2 和 item3 相同。这个,我可以理解,因为它属于不同的ul。我正在考虑为 3 ul 创建不同的点击侦听器。但是我在想你们是否有更好的主意来为所有项目创建一个监听器,这将为所有项目提供连续的索引号。

谢谢。

4

3 回答 3

4

您需要跟踪<li>元素列表,然后使用它来确定索引:

var $all_lis = $('li');

$all_lis.on('click', function() {
  var index = $all_lis.index(this);
  alert(index);
});

演示

第一项将给出0,最后一项将给出8(即第 9 项)。

于 2013-04-17T09:47:17.780 回答
1

您想获取所选ul元素的索引吗?尝试这个:

var parentInd = $(this).parent().parent().index();

于 2013-04-17T09:40:28.990 回答
0

this回调函数里面就是你想要的,被点击的项目。

于 2013-04-17T09:39:19.537 回答