0

私はnavいくつかの子a要素を持っています。それらの要素にクリック機能を追加しましたが、どれがクリックされたか知りたいです。-tagも内部に存在する可能性があるためspan(ただし、そうする必要はありません)、このコードを使用してインデックスを取得しました。a

HTML

<nav>
    <a href=""><span></span>Link text</a>
    <a href=""><span></span>Link text</a>
</nav>

JavaScript

var items = $('nav > a');

items.click( function(event) {

    var target  = ( $(event.target).is('span') ? $(event.target).parent() : $(event.target) ); 
    var key     = items.index( target );

    console.log( key );

    event.preventDefault();
});

だから私の質問は:これを書くためのより良い/短い/より速い方法はありますか?

4

1 に答える 1

1

クリックがスパンを介して伝播するため、<a/>次を使用できるはずです$(this).index()

var items = $('nav > a');

items.click( function(event) {
  var key = $(this).index();
  console.log(key);
});
于 2012-07-16T11:43:53.213 に答える