如何获取元素的索引作为子元素相对于父元素?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (29)

假设我有这个标记:

<ul id="wizard">
    <li>Step 1</li>
    <li>Step 2</li>
</ul>

我有一个jQuery:

$("#wizard li").click(function () {
    // alert index of li relative to ul parent
});

我怎样才能得到子索引?li相对于它的父级,当单击它时li?

提问于
用户回答回答于
$("#wizard li").click(function () {
    console.log( $(this).index() );
});

但是,不要为每个列表项目附加一个点击处理程序,使用delegate哪种方式会更好(性能明智),如下所示:

$("#wizard").delegate('li', 'click', function () {
    console.log( $(this).index() );
});

在jQuery 1.7+中,你应该使用on。下面的示例将事件绑定到#wizard元素,像委托事件一样工作:

$("#wizard").on("click", "li", function() {
    console.log( $(this).index() );
});
用户回答回答于

类似于:

$("ul#wizard li").click(function () {
  var index = $("ul#wizard li").index(this);
  alert("index is: " + index)
});

扫码关注云+社区