2

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

所以我需要 的索引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);
});
4

3 回答 3

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

于 2012-09-21T08:34:31.360 回答
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);
});
于 2012-09-21T08:42:22.197 回答
1

试试这个

$(this).parent('ol').parent().children('ol').indexOf($(this).parent('ol'));
于 2012-09-21T08:35:13.480 回答