js for循环中点击事件中无法获取每一个i值的问题
发布日期:2022-02-22 18:04:17 浏览次数:9 分类:技术文章

本文共 577 字,大约阅读时间需要 1 分钟。

好像是第二次遇到这个问题,必须要总结一下!!

1  2  3      4         
5 6 7 15 16
    17
  • 18
  • 19
  • 20
  • 21
22 32 33

如果按照以上方法,无论点击哪一个li标签,i的值都会是4,并不能像我们所想的那样打印出0,1,2,3,原因是什么呢?

暂时也不太清楚,好像涉及闭包,因为也没学到,就参考别人回答总结一下。

for循环是一个外部闭包,依次绑定的点击事件是一个函数实例,也产生了一个闭包域,它引用了外部闭包的变量i,外部闭包域中i的最终值为4,点击事件触发时引用外部闭包变量i(此时i=4),所以输出的值全为4。

暂时先写两种自己能掌握的解决方法:

方法一:在for循环中点击事件外套一个自执行的匿名函数,将索引变量i保存到匿名函数的形参中

1 

方法二:在for循环中,为每一个要点击的对象创建属性用来保存索引变量i

1 

 

转载于:https://www.cnblogs.com/Ryan777/p/10405262.html

转载地址:https://blog.csdn.net/dianshanban9429/article/details/101311477 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:DOM节点常见的属性及操作
下一篇:一个简单的动态页面(我的第一个博客)

发表评论

最新留言

感谢大佬
[***.8.128.20]2024年03月24日 07时11分02秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

python 动态tabel的数据爬取_使用requests爬取python岗位招聘数据 2021-06-24
input js number 整数_JS基础简单小结(1) 2021-06-24
二阶差分预测后数据还原公式_xgboost系列丨xgboost原理及公式推导 2021-06-24
docker mysql服务启动失败_docker中mysql初始化及启动失败问题解决方案 2021-06-24
mysql 阿里云 添加磁盘空间_rds mysql磁盘空间包含 2021-06-24
mysql 1364 hy000_mysql SQL Error: 1364, SQLState: HY000 保存错误 2021-06-24
mysqli拓展还能用mysql_最近在学习php,其中使用了MYSQLi扩展,注意是MYSQLi不是MYSQL(因PHP7已经不支持MYSQL扩展了)。... 2021-06-24
java中gui_java中GUI是什么意思?详细图解 2021-06-24
java iso 8601_如何在iOS上获得ISO 8601日期? 2021-06-24
windows8怎么下载python_win8怎么安装python 2021-06-24
linux猜数字程序,用linux实现猜数字小游戏源码 2021-06-24
linux下堆栈溢出实例,堆栈溢出在Linux上沉默? 2021-06-24
python创建nc文件_工具箱第2期 用python玩转NC 2021-06-24
拆分文件_文件拆分与合并 2021-06-24
开发优势_小程序开发优势好处有哪些 2021-06-24
4光影补丁_我的世界seus光影包 2021-06-24
aria手机下载_Aria2App 2021-06-24
汇编指令msr_ARM汇编:MRS和MSR指令 2021-06-24
慕课python第五周测试答案_中国大学MOOC(慕课)_python+_满分章节测试答案 2021-06-24
lsof查看占用高_lsof解决磁盘占用过高,查询却无大文件处理一例! 2021-06-24