Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/416.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何获得$(this)的eq()?_Javascript_Jquery - Fatal编程技术网

Javascript 如何获得$(this)的eq()?

Javascript 如何获得$(this)的eq()?,javascript,jquery,Javascript,Jquery,这是我的密码: $('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

这是我的密码:

$('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 -->
$('div.menu>ul>li>a')。单击(函数(e){
警报($(this.eq());
e、 预防默认值();
});

我的尝试警告对象错误。If应该返回被单击链接的数字位置。例如,如果您单击“动物”,它应该向1发出警报(不确定eq计数是否从0开始,如数组,在这种情况下,它应该向1发出警报),如果您单击“运动”,它应该向3发出警报,依此类推……

您要使用的函数是,并且它是基于零的

通过使用零参数版本的
.index()
,并将处理程序放在
  • 标记上而不是

    将处理程序放在
  • 标记上允许jQuery自动计算基于同级的索引


    或者,让选择器引用
    标记,并使用
    $(this).parent().index()

    Eq确实从0开始,要获得它,您需要有一个参考列表,请尝试:

    var links = $('div.menu > ul > li > a');
    links.click(function(e) {
             var index = links.index($(this));
             alert(index);
             e.preventDefault();
    });
    

    在线示例:

    我的错误-基于兄弟姐妹的版本在这里不起作用,因为每个
    标记都没有兄弟姐妹,只有
  • 标记有兄弟姐妹。
    var links = $('div.menu > ul > li > a');
    links.click(function(e) {
             var index = links.index($(this));
             alert(index);
             e.preventDefault();
    });