javascript - 获取元素的索引作为子元素相对于父元素

标签 javascript jquery

假设我有这个标记:

<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 相对于其父级的索引?

例如,当你点击“Step 1”时,应该会弹出一个带有“0”的alert

最佳答案

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

但是,与其为每个列表项附加一个单击处理程序,不如使用 delegate 更好(在性能方面)。看起来像这样:

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

在 jQuery 1.7+ 中,您应该使用 on .下面的示例将事件绑定(bind)到 #wizard 元素,就像委托(delegate)事件一样工作:

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

关于javascript - 获取元素的索引作为子元素相对于父元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4996002/

相关文章:

javascript - 获取 Phaser js 3 上的输入持续时间

Jquery Mobile- 页脚元素,100% 宽度

javascript - Chrome 扩展弹出窗口中 &lt;script&gt; 标记内的简单 jQuery 未执行

jquery - 如何在 jQuery AJAX 中的 onclick 事件中传递函数参数?

javascript - 为什么使用点 * 和 * 括号访问来分配属性?

javascript - Meteor - 将数据从模板传递到事件,点击按钮

javascript - 用innerhtml替换内部javascript代码?

jquery - 使用 jquery AJAX 和 FormData 上传文件

javascript - 根据范围变量设置 ng 所需的值

javascript - dc.js Vue 渲染图表不正确