時使用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),並且兩者都很好... –