2

私はここにフィドルを持っています、非常に単純なものです。

http://jsfiddle.net/tnQne/

私が持っているjsはここにあります

$('section a').on('click', function() {
    alert($(this).index());
});

セクション内にはアンカータグが1つしかないため、常に0を返します。私が欲しかったのは、jqueryコレクション内のクリックされた要素の位置を返すことでした。したがって、最後のセクションアンカーをクリックすると、2(0ベース)が返されます。

4

2 に答える 2

8

元のコレクションを保存して、そのコレクションを呼び出す必要がありますindex

var links = $('section a').on('click', function() {
    alert(links.index(this));
});

jsFiddle


コードの問題は、$(this).index()その兄弟に関連する要素のインデックスを取得することです。a要素には兄弟がないため、インデックスは常にです0。リンクしたAPIページでは、DOM要素が引数である場合に関数がどのようにindex機能するかを説明しています。

于 2012-09-21T18:30:34.853 に答える
2

lonesomedayにはそれを行う良い方法がありますが、別の方法は次のとおりです。

$('section a').on('click', function(e) {
    alert( $.inArray(e.target, $('section a')) );
});​

jsFiddleの例

于 2012-09-21T18:36:31.857 に答える