我想知道如何在内容itemEleven中获取span的索引,在下面的例子中使用jquery。假设我们无法按内容值获取元素:
<div>
<span class="itemSubMenu">itemOne</span>
<span class="itemSubMenu">itemTwo</span>
<span class="itemSubMenu">itemThree</span>
<span class="itemSubMenu">itemFour</span>
<span class="itemSubMenu">itemFive</span>
<span class="itemSubMenu">itemSix</span>
<span class="itemSubMenu">itemSeven</span>
</div>
<div>
<span class="subMenuitemSubMenu">Something</span>
<span class="subMenuitemSubMenu">Something too</span>
</div>
<div>
<span class="itemSubMenu">itemEight</span>
<span class="itemSubMenu">itemNine</span>
<span class="itemSubMenu">itemTen</span>
<span class="itemSubMenu">itemEleven</span>
<span class="itemSubMenu">itemTwelve</span>
<span class="itemSubMenu">itemThirteen</span>
<span class="itemSubMenu">itemFourteen</span>
<span class="itemSubMenu">itemFifteen</span>
</div>
当我尝试使用以下方法获取itemEight时。
$(".itemSubmenu").click(function(){
alert($(this).index());
});
警告0,而不是9.假设它是从零开始的索引。
答案 0 :(得分:3)
答案 1 :(得分:2)
索引始终基于其父级索引。
你需要这样做:
$(".itemSubMenu").click(function() {
alert($(this).parent().parent().find('span').index(this));
});
但实际上你需要一些基于以下内容的上下文选择器:
$(".itemSubMenu").click(function() {
alert($('#foo').find('span').index(this));
});
答案 2 :(得分:0)
您需要获取类itemSubMenu
的跨度集合,然后从该集合中获取this
的索引以获取正确的索引。
var selected = $(this);
var myIndex = $("itemSubMenu").index(selected);
答案 3 :(得分:0)
我喜欢这种方法。
$(".itemSubMenu").click(function(){
var $this = this;
var i;
$(".itemSubMenu").each(function(idx,val){
if(val === $this) console.log(i = idx);
})
});