2009-10-27 13 views
5

最後のリスト項目のインデックス番号を調べようとしていますが、使用しているjqueryは-1を返し続けます。これは私が使用しているJSとhtmlです。Jqueryでリスト項目のインデックスを取得する

var index = $('#imageThumbnails li:last').index(this); 

<div id="imageThumbnails"> 
    <ul class="gallery_demo_unstyled"> 
     <li class="active"><img src="test-img.jpg" width="394" height="394" alt=" " /></li> 
     <li><img src="test-img2.jpg" width="394" height="394" alt=" " /></li> 
     <li><img src="test-img3.jpg" width="394" height="394" alt=" " /></li> 
     <li><img src="test-img4.jpg" width="394" height="394" alt=" " /></li> 
     <li><img src="test-img5.jpg" width="394" height="394" alt=" " /></li> 
     <li><img src="test-img6.jpg" width="394" height="394" alt=" " /></li> 
     <li><img src="test-img7.jpg" width="394" height="394" alt=" " /></li> 
    </ul> 
</div> 

ありがとうございました。

答えて

21

コレクションのインデックスを呼び出し、そのコレクションのサブアイテムを渡す必要があります。

var items = $('#imageThumbnails li'); 
var lastItem = $('#imageThumbnails li:last'); 
var index = items.index(lastItem); 

あなたはクリック機能ハンドラである場合は、このような何か行うことができます:あなたの助けを

var items = $('#imageThumbnails li').click(function() { 
    var index = items.index(this); 

    // now that I know where I am, why am I here? 
}); 
+0

感謝を! –

+1

どのように2番目の1つの作品ですか? – TStamper

+0

'items'変数は、内部関数のクロージャーに含まれ、click関数が実行されるときに利用可能になります。その時点から将来的には式全体が完了し、 'items'は式の結果として得られる値の配列に設定されます。 – joshperry

関連する問題