时使用jquery.index()我有这个简单的使用jquery.index()想回有一类元素的值:如何寻找
的HTML:
<ul>
<li>foo</li>
<li class='on'>bar</li>
<li>roo</li>
</ul>
的JS :
var idx = $('li').index('.on');
它返回-1
如果类是除了第一个任何元件上。我错过了什么?
时使用jquery.index()我有这个简单的使用jquery.index()想回有一类元素的值:如何寻找
的HTML:
<ul>
<li>foo</li>
<li class='on'>bar</li>
<li>roo</li>
</ul>
的JS :
var idx = $('li').index('.on');
它返回-1
如果类是除了第一个任何元件上。我错过了什么?
当与由选择器(在这种情况下.on
)相匹配的集合中的一个选择器.index
返回jQuery对象的第一个元素的位置(即,第一<li>
)使用。
由于第一<li>
不是由.on
元素(其中仅第二<li>
匹配)相匹配的集合中的一部分被视为不存在,并作为记录.index
返回-1。
如果.on
是在第一<li>
然后.index
返回一个元素的索引仅包含该元素集合中,因此结果将是0
。
相反,如果你想找到你可以使用$(".on").index("li")
所有<li>
元素中的元素与.on
指数 - 这将永远只要任何<li>
有类on
返回一个索引。
我想你需要的是$('.on').index('li')
及以下的定义。
.index(selector)
甲selector
表示一个jQuery集合,其中查找的元件。
谢谢,但是为什么当第一个'li'中的班级工作时呢? – greener
@greener请参阅修订后的答案..当与定义一起阅读时,这很有意义。 –
你需要做的$('.on').index()
使用下。
var idx = $('li.on').index();
标题和问题不匹配。 –
我刚刚尝试了两种代码...你和[Vega的代码](http://stackoverflow.com/questions/14325608/how-to-use-jquery-index-when-looking-for-class/14325632# 14325632),并且两者都很好... –