1

单击孩子时,我想知道父索引号。例如,当我点击每个 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>
4

1 回答 1

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')。然后我们在所有后代 ( find()) 中搜索所有<ul />',并使用相同的index()方法找到我们单击的位置。

于 2012-04-05T13:19:32.667 回答