我有一个编号为li'sul,其中包含一个img标签和一个p标签,我正在try 查找点击时li的索引,如下所示:

$("li").on("click", (e) => {
  console.log($(e.target).parent().index());
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul>
    <li>
        <img src="">
        <p>Hindu</p>
    </li>
    <li>
        <img src="">
        <p>Muslim</p>
    </li>
    <li>
        <img src="">
        <p>Christian</p>
    </li>
</ul>

但当我点击时,我会得到奇数,我已经判断了功能,它 Select 了li.

我try Select 父li并记录它的索引,但得到的索引不正确.

推荐答案

有时你点击的是<li>,有时你点击的是元素within<li>.这将改变e.target是什么,从而改变.parent()指的是什么.(在堆栈代码段中,通过单击文本和单击项目符号可以观察到差异.)

不使用.parent(),而使用.closest('li').这样,逻辑就会始终查看指数的<li>:

$("li").on("click", (e) => {
  console.log($(e.target).closest('li').index());
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul>
    <li>
        <img src="">
        <p>Hindu</p>
    </li>
    <li>
        <img src="">
        <p>Muslim</p>
    </li>
    <li>
        <img src="">
        <p>Christian</p>
    </li>
</ul>

Html相关问答推荐

如何在两个弹性项目之间添加边框?

CSS动画积分计数器

如何在一张表中逃脱边境坍塌--崩溃?

如何设置弹性盒子容器的具体大小?

禁用的文本区域会丢失换行符

我的Django应用程序中出现模板语法错误

如何制作带有粘性头和脚的可滚动车身

HX-POST未使用正确的操作(路径)

标题在实时网站上闪烁

停止 Bootstrap 5 输入调整 CSS 网格单元的高度

复制两个

会产生一个空行;复制

元素不会

两个span,一个在div居中,好像没有另一个,另一个在右边

如何删除输入中输入类型数字中的箭头?

增加第一个字母的大小不再正确居中文本

在随机图像下对齐文本

如何清除html输入中的文本

需要禁用聚焦输入的工具提示(jquery)

如何在react 中向按钮添加禁用属性?

具有淡入/淡出效果的 CSS 选框

列宽等于最宽列宽度的无界容器