获取列表元素的数量(基于点击)?

时间:2011-07-11 04:04:32

标签: jquery html html-lists

PS:我正在使用this Jquery plugin,虽然我的问题不依赖于此。

    <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 个答案:

答案 0 :(得分:4)

$('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 :(得分:1)

我在#pikame元素上使用delegate,然后在li上使用index

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

Live example

虽然你如何到达li元素并不重要;关键位一旦你在那里,index没有参数告诉你它的兄弟姐妹的索引。由于li元素只能包含li个兄弟元素,因此无需为index提供选择器或任何内容。