2010-06-30 76 views
0

說我有HTML類似以下如何查找元素的索引中的數組

<ul> 
    <li> hi </li> 
    <li> hoi </li> 
    <li> privyet </li> 
    <li class="selected"> bonjour </li> 
    <li> hallo </li> 
</ul> 

,我使用jQuery來獲取所有的ul

$("ul li") 

li元素我怎麼能得到li元素的li元素與selectedli元素內的索引?

回答

3

隨着指數: http://api.jquery.com/index/

描述:搜索從匹配 元件中的給定元素 。

// Text 
$("ul li.selected").index("ul li"); 

THX帕特里克

// jQuery object 
$('ul li.selected'); 
var index = $("ul li").index(elem); 

// search Within siblings 
$("ul li.selected").index(); 

所有3個演示: http://jsfiddle.net/xXT9r/4/

+0

你的回答不起作用:http://jsfiddle.net/xXT9r/1/ – user113716 2010-06-30 15:54:07

+0

2分鐘前我更新了我的答案。它是固定的不是嗎? – jantimon 2010-06-30 15:55:06

+0

Ghommey - 我在說你的更新答案。我給了你一個測試它的鏈接。我想你是這樣想的:'var elem = $('ul li.selected'); var index = $(「ul li」)。index(elem);'http://jsfiddle.net/xXT9r/3/ – user113716 2010-06-30 15:56:42

2

對我而言,如果你已經完成了$("ul li"),那麼你想避免再次這樣做(如果你還沒有已經完成了它,我一定會去與patrick's approach)。假設您將該jQuery對象存儲爲items。你可以這樣做:

var pos = items.index(items.filter(".selected")); 

小提琴:http://jsfiddle.net/Nk3Aj/(大搖大擺偷帕特里克和更新:-))

它使用的index第二方案:

如果的.index()是調用元素的集合並傳入一個DOM元素或jQuery對象,.index()返回一個整數,指示傳遞的元素相對於原​​始集合的位置。

再說一遍,如果您已經完成了$("ul li")部分,這將非常有用。

+0

T.J. - 好點子。這個問題確實意味着它是從整個集合開始的。 +1 – user113716 2010-06-30 16:03:11