如何找到父点击子项的索引

时间:2012-04-05 13:18:10

标签: jquery

点击子项时,我想知道父索引号。例如,当我点击每个ul的孩子时,有一个包含3个ul的div,它应该显示父索引号。它的父母。我怎么能得到这个?

jQuery的:

$('.opSection').on('click','li',function(){

    var num = $(this).parent('ul').index();

    alert(num);

    //alert(chartData.Indices[$(this).index()][$(this).index()]);

    })

HTML:

    <div class="opSection">//parent of all
<dl><dd>
        <ul class="selectGroup" title='allIndia' data-select='1'>
            <li data-index="123" class="c_on">All India</li> // when i click any of li i need 0
        </ul>

        <ul class="selectGroup" title='allIndia' data-select='1'>
            <li data-index="123" class="c_on">All India</li> // when i click this, i need 1
        </ul>
</dd></dl>
    </div>

1 个答案:

答案 0 :(得分:3)

$('.opSection').on('click', 'li', function () {
    alert($(this).parent().index();
});

注意我在处理多个元素的事件时使用了事件委派来提高性能。

这里的重要部分是parent()来选择ul,然后是index(),当没有参数传递时,会返回相对于其兄弟元素的位置。

编辑正如您在评论中所说,您的标记与您在问题中发布的标记不同,请尝试以下方式:

$('.opSection').on('click', 'li', function (e) {
    $(e.delegateTarget).find('.selectGroup').index(this.parentNode);
});

$(e.delegateTarget)$('.opSection')相同(但速度更快)。然后,我们搜索所有<ul />的所有后代(find()),并使用相同的index()方法查找我们点击的后代的位置。