jQuery元素.index()在不同容器内的位置

时间:2015-03-26 13:12:49

标签: javascript jquery indexing position

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

<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,第二列为第1,第三列为0,另一个容器为第1列,第四列为第1列。

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

添加

我的课程增加了15%的宽度。现在,如果它是每个容器中的第一个容器,它会移动left: 0%,如果它是最后一个容器,则它是left: 85%;。但是,如果鼠标栏指向不同的列,它会将代码添加15%并使列保持居中。

页面中的一个容器的所有这些都作为魅力,但如果我添加第二个容器,第一个容器中最后一列的索引不是column类的最后一个索引,所以它没有添加left: 85%;,第二个容器的第一个也是如此。

1 个答案:

答案 0 :(得分:1)

.index() doc中所述:

  

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

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