javascript - $(this).index()的问题
高洛峰
高洛峰 2017-04-10 17:05:19
[JavaScript讨论组]

这个弹出来的 num怎么会是 -1啊
获取哪里错误了?

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回复(6)
阿神

jquery 版本?像上次一样?

天蓬老师

$(this).index(); 试试

巴扎黑

我记得用法应该是

$('.grays').index($(this))

你用法错了

PHP中文网

这,你为毛在里面又写个事件绑定啊

$('.grays').clck(function(){
    $(this).attr(....),
    $(this).click(function(){
        //嗯,就是这 为啥又绑定啊
    })
    //直接$(this).parent().index()不就拿到夫元素p的下标了吗
})
阿神
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script type="text/javascript" src="script/jquery_2_1_3/jquery-2.1.3.min.js"></script>
    <script>
        $(function(){
            $('.grays').click(function(){
                console.log($(this).parent().index());
                $(this).click(function(){
                    console.log('>>>'+$(this).parent().index());
                });
            });
        });

    </script>
</head>
<body>

<li>
    <p>1</p>
    <p><img src="imgs/bico-github.png" class="grays">2</p>
    <p><img src="imgs/bico-jabber.png" class="grays">3</p>
    <p><img src="imgs/bico-github@2x.png" class="grays">4</p>

</li>
</body>
</html>
  1. $(this).parent().index()获取指定DOM元素的父元素在其兄弟节点中的位置,那你的DOM树结构不会出现-1

  2. 你贴出的代码在一个click事件回调中为当前相应事件的回调函数又绑定了事件,那么会导致随着你点击次数次数的增多,DOM元素上会重复绑定回调函数,你上面的代码看不来,是因为你执行的了 $(this).parent().remove();; 为什么要这样写呢?

~请精简代码,把问题重现下吧~

巴扎黑
$('.grays').on('click',function(){
    var ts = $(this);
    var num=$('p').index(ts);
    alert(num);
});

没有必要去绑定两次click事件,会触发多次回调

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号