js的一个有意思的小题,闭包解决getElementByTagName的for循环绑定事件错误问题
2024-09-19 22:49:15
问: i 会输出什么?改写成闭包的写法?
<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>
最新文章
- string.join(iterable)
- [原]通过配合ffmpeg.exe获取视频文件时长
- Android通过xml文件配置数据库
- @ResponseBody 返回中文乱码问题解决 spingmvc
- Eclipse在线安装ADT插件
- NRF51822之动态广播使用
- java 考试试题
- [转] How to dispatch a Redux action with a timeout?
- leetcode第一刷_Interleaving String
- LinQ 语法基础
- Xcode4.6 自制iOS可用的 Framework
- PS2键盘 + LCD12864 实验
- jQuery选择器,用逗号分隔的时候需要注意范围问题
- ubuntu系统搭建以太坊私有链
- 洛谷 [P2774] 方格取数问题
- Eclipse多平台编译(armeabi, armeabi-v7a, x86, mips)
- Java之hashCode的作用和equals方法的重构规则
- Java框架spring 学习笔记(十四):注解aop操作
- Decoder is not a @Sharable handler, so can&#39;t be added or removed multiple times
- JS小积累(一)— 判断在线离线
热门文章
- vue判断图片为空或者图片加载不成功时显示默认图片
- 图论 --- 三维空间bfs
- Flask源码之:路由加载
- Delphi RSA签名与验签【支持SHA1WithRSA(RSA1)、SHA256WithRSA(RSA2)和MD5WithRSA签名与验签】
- day01——python初始、变量、常量、注释、基础数据类型、输入、if
- 【PYQT5快速开发】重定义边框、QSS美化皮肤主题
- 客开监控(BE/UI/BP)插件停用与启用
- JMeter安装及简单应用示例
- pytest_04_测试用例setup和teardown
- 原!linux comm命令文件 比较 输出交集,差集。