点击子项时,我想知道父索引号。例如,当我点击每个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>
答案 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()
方法查找我们点击的后代的位置。