使用Jquery获取列表项目的索引
问题描述:
我试图找出最后一个列表项的索引号,但是我使用的jquery一直返回-1。这是JS和我正在使用的HTML。使用Jquery获取列表项目的索引
var index = $('#imageThumbnails li:last').index(this);
<div id="imageThumbnails">
<ul class="gallery_demo_unstyled">
<li class="active"><img src="test-img.jpg" width="394" height="394" alt=" " /></li>
<li><img src="test-img2.jpg" width="394" height="394" alt=" " /></li>
<li><img src="test-img3.jpg" width="394" height="394" alt=" " /></li>
<li><img src="test-img4.jpg" width="394" height="394" alt=" " /></li>
<li><img src="test-img5.jpg" width="394" height="394" alt=" " /></li>
<li><img src="test-img6.jpg" width="394" height="394" alt=" " /></li>
<li><img src="test-img7.jpg" width="394" height="394" alt=" " /></li>
</ul>
</div>
感谢您的帮助。
答
您需要在集合上调用索引,并传入该集合的子项。
var items = $('#imageThumbnails li');
var lastItem = $('#imageThumbnails li:last');
var index = items.index(lastItem);
如果你在点击功能的处理器,你可以做这样的事情:
var items = $('#imageThumbnails li').click(function() {
var index = items.index(this);
// now that I know where I am, why am I here?
});
感谢您的帮助! – 2009-10-27 19:56:14
第二个如何工作? – TStamper 2009-10-27 19:58:13
'items'变量包含在内部函数的闭包中,并在click函数执行时可用。从那时起,将来将会完成整个表达式,并且'items'将被设置为由该表达式产生的值的数组。 – joshperry 2009-10-27 20:04:20