实施例
<ul>
<li>0</li>
<li>1</li>
<li>2</li>
<li>3</li>
</ul>
<ul>
<li class="four">0</li> # again 0
<li>1</li> # again 1
</ul>
$("li").click(function(){
console.log($(this).index());
});
当我点击“四级”课时,如何获得“4”?默认情况下,如果在新的父元素中,则从0开始。
答案 0 :(得分:2)
您的HTML标记无效。您需要使用li
而不是</li>
关闭<li>
。之后,您将按预期获得0
:
<强> Fiddle Demo 强>
如果要获取DOM中当前单击的li
元素的索引,可以使用:
$("li").click(function(){
console.log($(this).index('li'));
});
如果您点击4
上课程li
,这将为您four
。
<强> Fiddle Demo 强>
答案 1 :(得分:1)
尝试,
var cache = $("li");
cache.click(function(){
console.log(cache.index( $(this)));
});
请阅读 here ,详细了解.index()
根据您的新要求,您可以这样做,
$("li").click(function(){
alert($(this).closest('ul').children('li').index($(this)));
});
答案 2 :(得分:1)
简单地使用index()方法将使用它的父ul列表记录索引号,但如果使用index('li'),则它将记录所有li列表中的索引。所以,你可以像这样使用:
$("li").click(function(){
console.log($(this).index('li'));
});
但是这将记录所有文档列表中的索引号,因此将类添加到要从中获取索引号的列表:
<ul class="myIndx">
<li>0<li>
<li>1<li>
<li>2<li>
<li>3<li>
</ul>
<ul class="myIndx">
<li class="four">0<li> # again 0
<li>1<li> # again 1
</ul>
然后像这样使用:
$(".myIndx li").click(function(){
console.log($(this).index('li'));
});
答案 3 :(得分:0)
通过正确关闭<li>
代码(使用</li>
),当我点击四个时,我会得到“0”。