博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
javascript循环点击li问题
阅读量:6081 次
发布时间:2019-06-20

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

好吧,我是个渣渣

今天用原生js写li的循环点击,之前习惯了jquery,换成了javascript之后就不行了

先贴上html源代码

接着是js代码

此时此刻问题来了!!!!

在页面上点击li的项,无论点什么,输出的都是“4”,

原因:

onsole.log(i)里的i在循环完成的时候被赋值成了5,而每个按钮的onclick都被赋值了同一个function,也就是说每个function里的i指的是同一个i,i=4,自然每个点击都会打印出4

解决办法:

利用闭包把每个function里的i都变成不同的i就行了,循环中的function自调用,将循环中的i作为参数传入function中,此时,function中的i已经不是循环中的i了(这里有点绕,其实形参i,即function里的i换成什么变量名都行),而是在内存中开辟了一个内存空间存储了作为参数传进来的i的值,这样function中的就不会随着循环中的i的值的改变而改变了,就可以打印出你要的结果了。

po上代码:

 

转载于:https://www.cnblogs.com/shira-t/p/8583113.html

你可能感兴趣的文章
大数据时代汽车行业CRM营销-李晓明,勒卡斯
查看>>
章文嵩-构建云计算平台的实践
查看>>
Sql delete 语句时表别名写法
查看>>
EGOTextView
查看>>
redis监控客户端redis-cli
查看>>
hibernate中拦截器与事件监听器的区别
查看>>
一个简单的电话本程序,支持添加和查找功能。
查看>>
使用堆栈实现括号的匹配
查看>>
超强壮的RSA加密Android短信
查看>>
MyEclipse中把选中的一部分代码变成全部大写或小写快捷键
查看>>
图片缩放
查看>>
自定义表单中计算控件的插件代码
查看>>
Java中的代理的使用
查看>>
springboot 下载文件
查看>>
使用C#创建SQL Server的存储过程
查看>>
一个鸡蛋的启示(传疯了)
查看>>
FreeMarker的优点和缺点
查看>>
ubuntu 安装tengine
查看>>
Java类到对象的创建过程
查看>>
eclipse下安装js插件-spket(支持Ext) 能格式化Js(JQuery自动提示)
查看>>