我有一个nav
有一些孩子a
- 元素。我为这些元素添加了一个click功能,想知道哪一个被点击了。因为span
- 标签内部(但不必须)a
,我使用此代码来获取索引:
<nav>
<a href=""><span></span>Link text</a>
<a href=""><span></span>Link text</a>
</nav>
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();
});
所以我的问题是:是否有更好/更短/更快的写作方式?
答案 0 :(得分:1)
当点击将通过范围传播到<a/>
时,您应该可以使用$(this).index()
:
var items = $('nav > a');
items.click( function(event) {
var key = $(this).index();
console.log(key);
});