获取带有ID的li索引?

时间:2014-04-11 10:02:13

标签: jquery

我有这个可排序的列表:

            <ul id="sortable">
              <li id="Item1"><img src="../../../../IMAGES/04_01/P2_0401_18.jpg" /></li>
              <li id="Item2"><img src="../../../../IMAGES/04_01/P2_0401_20.jpg" /></li>
              <li id="Item3"><img src="../../../../IMAGES/04_01/P2_0401_22.jpg" /></li>
              <li id="Item4"><img src="../../../../IMAGES/04_01/P2_0401_24.jpg" /></li>
              <li id="Item5"><img src="../../../../IMAGES/04_01/P2_0401_26.jpg" /></li>
              <li id="Item6"><img src="../../../../IMAGES/04_01/P2_0401_28.jpg" /></li>
            </ul>

当然,当用户移动项目时,每个项目ID的索引都会发生变化。我想要做的是将项目的新索引存储在单独的变量itemIndex1, itemIndex2, etc中,这样我就可以在稍后运行的函数中检查它们的位置。

这是引起我难题的代码:

var itemIndex1 = $('#sortable li').index($('#sortable li:nth-child(1)'));
var itemIndex2 = $('#sortable li').index($('#sortable li:nth-child(2)'));
var itemIndex3 = $('#sortable li').index($('#sortable li:nth-child(3)'));
var itemIndex4 = $('#sortable li').index($('#sortable li:nth-child(4)'));
var itemIndex5 = $('#sortable li').index($('#sortable li:nth-child(5)'));
var itemIndex6 = $('#sortable li').index($('#sortable li:nth-child(6)'));

我在stackoverflow上的另一个问题中找到了这个解决方案,但它并不适合我的目的,因为每个itemIndex只返回每个li子节点的索引,而不管它的ID如何。 itemIndex1将始终返回0itemIndex2将始终返回1等。

我希望能够获得#Item4的索引,例如,如果用户已将其拖至0索引。

1 个答案:

答案 0 :(得分:2)

只需使用.index就可以了:

var idx = $("#Item4").index();
  

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