jQuery获取某些子元素的索引并忽略其他元素

时间:2012-09-21 08:31:53

标签: javascript jquery

我正在尝试获取子元素ol的索引,但在那里还有一些我不需要的h2,因此在使用时会污染我的结果jQuery index()函数。

所以我需要ol的索引,就好像根本没有h2一样。因此,如果您点击第3个ol,则索引将为2,而不是4

HTML看起来像这样:

<div>
    <h2>Title</h2>
    <ol><li>Item</li><li>Item</li><li>Item</li></ol>
    <h2>Title</h2>
    <ol><li>Item</li><li>Item</li><li>Item</li></ol>
    <h2>Title</h2>
    <ol><li>Item</li><li>Item</li><li>Item</li></ol>
    <h2>Title</h2>
    <ol><li>Item</li><li>Item</li><li>Item</li></ol>
</div>

和jQuery:

$('ol li').click(function () {
    // get current index position of the ol
    var itemIndex   = $(this).parent('ol').index();

    alert(itemIndex);
});

3 个答案:

答案 0 :(得分:4)

如果我理解,请尝试此代码

var ol = $('ol');
ol.find('li').click(function () {
    var parentOl  = $(this).parent('ol');
    // get current index position of the ol
    var itemIndex = ol.index(parentOl);
    alert(itemIndex);
});

示例jsbin:http://jsbin.com/enugex/1/edit

答案 1 :(得分:2)

修改jsfiddle

上的代码
$('ol li').click(function (item,index) {
    // get current index position of the ol
      var itemIndex   = $(this).parents('div').children('ol').index($(this).parent('ol'));

    alert(itemIndex);
});

答案 2 :(得分:1)

试试这个

$(this).parent('ol').parent().children('ol').indexOf($(this).parent('ol'));