扫码关注官方订阅号
dom 1111111111隐藏 2222222222隐藏 3333333333隐藏 4444444444隐藏
小伙看你根骨奇佳,潜力无限,来学PHP伐。
因为你在绑定onclick方法的时候,它本身并没有执行,而是在点击事件触发的时候在执行。到那时候由于for循环早就做完了,i等于oA.length - 1,oA[i]是oA的最后一位,而不是oA的每一位。
@SevenOutman 已经解释过了,循环时候是在绑定事件,而当点击时候循环已经结束,此时i值为oA.length,oA[i]是不存在的。
这种问题……你单步一下不就都知道了吗……
你需要一个自执行函数(闭包)来保存循环值i的引用
<title>dom</title> <meta charset="utf-8"/> <script> window.onload=function(){ var oA=document.getElementsByTagName("a"); for(var i=0;i<oA.length;i++){ (function(i) { oA[i].onclick=function(){ oA[i].parentNode.style.display="none"; } })(i); } } </script>
这样算不算oA[i] 替换 this ^_^
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
因为你在绑定onclick方法的时候,它本身并没有执行,而是在点击事件触发的时候在执行。
到那时候由于for循环早就做完了,i等于oA.length - 1,oA[i]是oA的最后一位,而不是oA的每一位。
@SevenOutman 已经解释过了,循环时候是在绑定事件,而当点击时候循环已经结束,此时i值为oA.length,oA[i]是不存在的。
这种问题……你单步一下不就都知道了吗……
你需要一个自执行函数(闭包)来保存循环值i的引用
这样算不算oA[i] 替换 this ^_^