js的一个有意思的小题,闭包解决getElementByTagName的for循环绑定事件错误问题
2016-04-25 14:31
876 查看
问: i 会输出什么?改写成闭包的写法?
答:全部输出都是”我是第3个“
闭包写法可解决问题
<a href="javaScript:void(0)">a</a> <a href="javaScript:void(0)">b</a> <a href="javaScript:void(0)">c</a> <script type='text/javascript'> var arr = document.getElementsByTagName('a'); for(var i=0;i<arr.length;i++) { arr[i].onclick = function() { console.log(this + '我是第'+ i +'几个'); } } </script>
答:全部输出都是”我是第3个“
闭包写法可解决问题
<a href="javaScript:void(0)">a</a> <a href="javaScript:void(0)">b</a> <a href="javaScript:void(0)">c</a> <script type='text/javascript'> var arr = document.getElementsByTagName('a'); for(var i=0;i<arr.length;i++) { (function(i,v){ v.onclick = function() { console.log(this + '我是第'+ i +'个'); } })(i,arr[i]) } </script>
相关文章推荐
- WEB页面JS实现一键拨号的电话拨打功能
- doT.js初学代码
- day13 JS Dom
- JS开发引用HTML DOM的location和document对象
- JS开发引用HTML DOM的location和document对象
- js对象中什么是可枚举性(enumerable)?
- js中的hasOwnProperty和isPrototypeOf方法
- 【JS】导出table到excel,同时兼容FF和IE
- 信息系统实践手记6-JS调用Flex的性能问题一例
- JSTL自定义标签
- js中let和var定义变量的区别
- JavaScript的性能优化:加载和执行
- javascript数组去重的三种常用方法总结
- 跟Sam大叔学JS(一)
- JavaScript基础——使用Canvas画图
- JS中判断null、undefined与NaN的方法
- 2、JavaScript快速入门(1)
- javascript的2种继承方式详解
- JavaScript模块化编程思想演变
- 關於js對象創建