0

我有nav一些子a元素。我为这些元素添加了一个点击功能,并想知道点击了哪一个。因为可以有一个span内部(但不是必须)a-tag 以及我使用此代码来获取索引:

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 回答