是否有更短/更有效的方式来编写这个表达式?

时间:2012-07-16 11:40:04

标签: jquery

我有一个nav有一些孩子a - 元素。我为这些元素添加了一个click功能,想知道哪一个被点击了。因为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();
});

所以我的问题是:是否有更好/更短/更快的写作方式?

1 个答案:

答案 0 :(得分:1)

当点击将通过范围传播到<a/>时,您应该可以使用$(this).index()

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

items.click( function(event) {
  var key = $(this).index();
  console.log(key);
});