получить количество элементов списка (на основе клика)? - PullRequest
0 голосов
/ 11 июля 2011

PS: я использую этот плагин Jquery , хотя мой вопрос от этого не зависит.

    <div class="pikachoose">
        <ul id="pikame" class="jcarousel-skin-pika">
            <li><a href="http://www.pikachoose.com"><img src="../../10.jpg"/></a</li>
            <li><a href="http://www.pikachoose.com"><img src="../../20.jpg"/></a></li>
            <li><a href="http://www.pikachoose.com"><img src="../../30.jpg"/></a</li>
            <li><a href="http://www.pikachoose.com"><img src="../../40.jpg"/></a></li>
            <li><a href="http://www.pikachoose.com"><img src="../../50.jpg"/></a></li>
        </ul>
    </div>

Я хочу получить индекс тега "li".

  $("#pikame li").size(); 

вернет мне общее количество "li".Но я хочу получить индекс этого "li"

Например, если щелкнуть изображение 40.jpg, то я хочу получить 3 (индекс начинается с 0,1,2 и т. Д.).

Ответы [ 2 ]

4 голосов
/ 11 июля 2011
$('a').click(function(){
    alert($(this).parent().index());
});

Рабочий пример: http://jsfiddle.net/AlienWebguy/zvkgv/

РЕДАКТИРОВАТЬ: расширенный пример для запроса комментария:

$('#pikame a').click(function(){
    $('#pikame2 li').eq($(this).parent().index()).find('img').trigger('click');
    return false;
});

Новый Рабочий пример: http://jsfiddle.net/AlienWebguy/zvkgv/2/

1 голос
/ 11 июля 2011

Я бы использовал delegate для элемента #pikame, затем index для li:

$("#pikame").delegate("li", "click", function() {
    // $(this).index() is the index of the `li` clicked
});

Живой пример

Хотя на самом деле не имеет значения, как вы попадаете на элемент li;ключевой бит, когда вы там, index без аргументов сообщает вам свой индекс среди своих братьев и сестер.Поскольку li элементы могут иметь только li братьев и сестер, нет необходимости предоставлять index селектор или что-либо еще.

...