2009-10-27 2 views
5

Я пытаюсь выяснить номер индекса последнего элемента списка, но используемый 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> 

Благодарим за помощь.

ответ

21

Вам необходимо вызвать индекс в коллекции, передав подэлемент этой коллекции.

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? 
}); 
+0

Спасибо за вашу помощь! –

+1

как будет эта вторая работа? – TStamper

+0

Переменная 'items' включена в закрытие внутренней функции и будет доступна в момент выполнения функции щелчка. Поскольку это время будет в будущем, все выражение будет завершено, и 'items' будет установлен в массив значений, который был получен из выражения. – joshperry

Смежные вопросы