jquery $(this).index问题

xyh1996
  • 41

html:

<div>
......省略各种层级

<span class="edit"></span>

</div>
<div>
......省略各种层级

<span class="edit"></span>

</div>
<div>
......省略各种层级

<span class="edit"></span>

</div>

js:代码

$('.edit').click(function(){

console.log($(this).index());

})

像上述的代码 打印出来都是零而不是索引 怎么解决?

回复
阅读 1.9k
6 个回答
<span class="edit"></span>
<span class="edit"></span>
<span class="edit"></span>
这种是你想要的。走索引。
你那个外边包了一层div,每个div下面的edit没有关系啊

$(this).index()找的是同级兄弟元素中他所在的位置,你这里应该是寻找外层div的位置吧,可以使用$(this).parents("你的选择器").index()

index是jquery里面比较有意思的方法
$('.edit').index();表示$('.edit')jqery集合中第一个元素在他的兄弟元素排行第几
$('.edit').index('div');表示$('.edit')jqery集合中第一个元素在$('div')的集合中排行第几
$('div').index($('.edit'));表示$('.edit')jqery集合中第一个元素在$('div')的集合中排行第几
都是根据传入的值不同实现重载

试试$('.edit').index(this);

这肯定是0呀 你这在同级 你要找外层的肯定 用parents()父级.index() 你这个edit在本级中就是第一位 肯定一直打印0呀 度不在同一级

不是0才有鬼了,同级别的叫edit的元素就这一个,而且人家还有一句省略各种层级,你们1个parents怎么够嘛~~

宣传栏