主体は配列:jQuery.index() メソッドの注意点

index() メソッドで目的のインデックスがなかなか取得できないときに参考にしてください。

例えば選択した DOM 要素が、兄弟要素の何番目に当たるのか
jQuery.index(Element or jQuery) メソッドは該当するインデックス番号を返すが、何も見つからなければ -1 を返す。

  • 注意点

jQuery.index() メソッドを呼び出す jQuery オブジェクトは、親要素(一つを含んだリスト)でなく、全ての兄弟要素を含んだリストである。

/*
- div.feed       親
  - div.entry    兄弟
  - div.entry    兄弟
  - div.entry    兄弟
*/

var $feed = $('.feed');  // parent

$('.entry', $feed).click(function() {  // div.entry をクリック
  // Failed
  $feed.index(this);  // -1
  // $feed is [ div.feed ]
  
  // Success
  $feed.children().index(this);  // 0 or 1 or 2
  // $feed.children() is [ div.entry, div.entry, div.entry ]
});