我需要知道点击元素的索引.无法弄清楚如何做到这一点
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?
<!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); }
event handler already is a closure
原文地址:https://www.jb51.cc/js/151563.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。