2013-01-14 74 views
0

時使用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如果類是除了第一個任何元件上。我錯過了什麼?

JSFIDDLE

+0

標題和問題不匹配。 –

+0

我剛剛嘗試了兩種代碼...你和[Vega的代碼](http://stackoverflow.com/questions/14325608/how-to-use-jquery-index-when-looking-for-class/14325632# 14325632),並且兩者都很好... –

回答

2

當與由選擇器(在這種情況下.on)相匹配的集合中的一個選擇器.index返回jQuery對象的第一個元素的位置(即,第一<li>)使用。

由於第一<li>不是由.on元素(其中僅第二<li>匹配)相匹配的集合中的一部分被視爲不存在,並作爲記錄.index返回-1。

如果.on是在第一<li>然後.index返回一個元素的索引僅包含該元素集合中,因此結果將是0

相反,如果你想找到你可以使用$(".on").index("li")所有<li>元素中的元素與.on指數 - 這將永遠只要任何<li>有類on返回一個索引。

2

我想你需要的是$('.on').index('li')及以下的定義。

.index(selector)selector表示一個jQuery集合,其中查找的元件。

http://jsfiddle.net/R6mjG/2/

+0

謝謝,但是爲什麼當第一個'li'中的班級工作時呢? – greener

+0

@greener請參閱修訂後的答案..當與定義一起閱讀時,這很有意義。 –

0

你需要做的$('.on').index()

1

使用下。

var idx = $('li.on').index();