微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用纯JavaScript获取点击元素的索引

我需要知道点击元素的索引.无法弄清楚如何做到这一点
for (i = 0; i < document.getElementById('my_div').children.length; i++) {
    document.getElementById('my_div').children[i].onclick = function(){'ALERT POSITION OF CLICKED CHILD'};
}

this.index?

这里是我想要做一个例子(它只给了6):

<!DOCTYPE html>
<html>
<head>
<Meta charset="utf-8" />
<title>Untitled Document</title>
<style type="text/css">
body{margin:0;}
#container div{height:50px;line-height:50px; text-align:center}
</style>
</head>
<body>
<div id="container">
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
<div>6</div>
</div>
<script>
for (i = 0; i < document.getElementById('container').children.length; i++) {
    document.getElementById('container').children[i].onclick = function(){alert('Number ' + i + ' was clicked')};
}
</script>
</body>
</html>

解决方法

这是一个 piece of code,可以帮助您获得for循环中点击的元素的索引.所有你需要的是一个新的 scope
var g = document.getElementById('my_div');
for (var i = 0,len = g.children.length; i < len; i++)
{

    (function(index){
        g.children[i].onclick = function(){
              alert(index)  ;
        }    
    })(i);

}

编辑:将用户Felix Kling的评论整合到答案中.

event handler already is a closure

原文地址:https://www.jb51.cc/js/151563.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐