我有这个可排序的列表:
<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
将始终返回0
,itemIndex2
将始终返回1
等。
我希望能够获得#Item4
的索引,例如,如果用户已将其拖至0
索引。
答案 0 :(得分:2)
只需使用.index就可以了:
var idx = $("#Item4").index();
如果没有将参数传递给.index()方法,则返回值为 一个整数,表示第一个元素在其中的位置 jQuery对象相对于其兄弟元素