【问题标题】:jQuery element .index() position inside different containersjQuery 元素 .index() 在不同容器中的位置
【发布时间】:2025-11-21 06:50:14
【问题描述】:

我需要获取共享类的元素的索引,它在容器内,代码示例:

<div id="mycontainer">
    <div class="column">Text here</div>
    <div class="column">Text here</div>
    <div class="column">Text here</div>
    <div class="column">Text here</div>
</div>
<div id="mycontainer2">
    <div class="column">Text here</div>
    <div class="column">Text here</div>
    <div class="column">Text here</div>
</div>

我阅读了.index() 的 jQuery API,您使用它的方式如下:$("selector").index(this); 这一切都很好。

现在,如果我不知道 .column 元素的长度以在某个点停止计算索引,我如何知道包含它们的每个容器的第一个索引?我的意思是,0 表示第一列,1st 表示第二列,0 表示第三列表示在另一个容器中,1st 表示第四列。

我需要知道它,因为当鼠标进入一列时,它会应用一些样式,每个容器的第一个和最后一个具有不同的样式。如果我有一个容器,知道它是没有问题的,但是当有多个容器时就会出现问题。

添加

我有一个将宽度增加 15% 的类。现在,如果它是每个容器的第一个,则留下left: 0%,如果是最后一个,则留下left: 85%;。但是,如果鼠标指向不同的列,它会执行代码添加 15% 并保持列居中。

页面中的一个容器的所有这些,作为一个魅力,但如果我添加第二个,第一个容器中最后一列的索引不是 column 类的最后一个索引,所以它不会't 添加left: 85%;,同样的情况也发生在第二个容器的第一个。

【问题讨论】:

  • 你试过$(this).index()吗?
  • 我不确定我没听错,但你想要这样的东西:jsfiddle.net/markai/s03sgrkh/1 吗?
  • 根据您问题中的标记,您将获得 $(this).index()0,1,0,1
  • $(this).index(), @Karl-AndréGagnon 对于每个选择器一直给我 0
  • @Cheshire 但它不应该:jsfiddle.net/1fa81bgs。您做错了什么您的 html 看起来不像您显示的那样。

标签: javascript jquery indexing position


【解决方案1】:

.index() doc 中所述:

如果没有参数传递给 .index() 方法,则返回值是一个整数,指示 jQuery 对象中的第一个元素相对于其兄弟元素的位置。

所以简单地做$(this).index() 会给你元素索引ammoung它的兄弟姐妹。换句话说,它的子位置。

【讨论】: