使用jquery识别在多级列表中单击的项目

我的HTML看起来像这样

  • Item 1
  • Item 2
  • Item 3
  • Item 1
  • Item 2
  • Item 3
  • Item 1
  • Item 2
  • Item 3

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

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

这会警告单击项目的索引。 但是,第1行,第2行和第3行的第1项具有相同的索引。 与item2和item3相同。 这个,我能理解,因为它属于不同的ul。 我想为3 ul创建不同的点击监听器。 但我在想你们是否有更好的想法为所有人创建一个监听器,为所有项目提供连续的索引号。

谢谢。

您需要跟踪

  • 元素列表,然后使用它来确定索引:

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

    演示

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

    你想获得所选ul元素的索引吗? 试试这个:

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

    回调函数中的这个就是你想要的,点击的项目。