这是我的代码:
$('div.menu > ul > li > a').click(function(e) {
alert($(this).eq());
e.preventDefault();
});
<div class="menu">
<ul>
<li><a href="">Animals</a></li>
<li><a href="">Cars</a></li>
<li><a href="">Sports</a></li>
</ul>
</div><!-- menu -->
我的尝试警告对象对象错误。如果应该返回被点击链接的数字位置。例如,如果您单击动物,它应该警告1(不确定eq计数是否从0开始,如阵列,在这种情况下它应该提醒),如果您点击体育,它应该警告3,依此类推......
答案 0 :(得分:1)
你所追求的功能是$(this).index()
,它是从零开始的。
您可以使用.index()
的零参数版本,并将处理程序放在<li>
标记而不是<a>
标记上,从而使功能更简单 - 请参阅http://jsfiddle.net/udKJf/
$('div.menu > ul > li').click(function(e) {
alert($(this).index());
e.preventDefault();
});
将处理程序放在<li>
标记上允许jQuery自动计算基于兄弟的索引。
或者,让选择器引用<a>
标签并使用$(this).parent().index()
。
答案 1 :(得分:1)
Eq从0开始,要获得它,你需要有一个参考列表,试试:
var links = $('div.menu > ul > li > a');
links.click(function(e) {
var index = links.index($(this));
alert(index);
e.preventDefault();
});