Получить индекс элемента списка, используя jQuery - PullRequest
0 голосов
/ 22 сентября 2011

У меня есть неупорядоченный список с неизвестным количеством элементов списка. это выглядит так:

<ul id="keyvisualpager">
    <li><a><span>first</span></a></li>
    <li><a><span>second</span></a></li>
    <li><a><span>third</span></a></li>              
    <li><a><span>and so on</span></a></li>              
    <li><a><span>fsdfsf</span></a></li>             
    <li><a><span>asdad</span></a></li>              
</ul>

когда пользователь нажимает на ссылку, мне нужно узнать индекс элемента списка и присвоить его переменной. например если пользователь щелкает по второй ссылке («вторая»), переменная должна быть установлена ​​на «2» ...

$('#keyvisualpager li a').click(function () { 

     // receive index of list element
     var mbr_index = ???;   


});

Я должен использовать JQuery 1.2.1 ... так что ничего особенного, пожалуйста:)

любая помощь очень ценится, спасибо!

Ответы [ 2 ]

4 голосов
/ 22 сентября 2011

Может быть, вы упустили из виду, что .index(element) [документы] уже были доступны в jQuery 1.0:

var $items = $('#keyvisualpager li');

$items.find('a').click(function () { 
     var mbr_index = $items.index($(this).parent()) + 1; // one based index
});

Оригинальный ответ:

Это должно работать в jQuery 1.2:

var mbr_index = $(this).parent().prevAll().length + 1; // one based index
1 голос
/ 22 сентября 2011

Вы можете рассмотреть возможность назначения клика вручную, используя each(). Вы можете перебирать элементы списка и иметь индекс, доступный для вас. Вы можете найти привязку в элементе списка и привязать его метод щелчка.

$('#keyvisualpager li').each(function(index) {
    $(this).find('a').bind('click', function() {
        var mbr_index = index + 1; // indices start at 0
        ...
    });
});

each() был доступен в jQuery 1.0, поэтому вы можете без проблем использовать его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...