鱼C论坛

 找回密码
 立即注册
查看: 2218|回复: 11

[已解决]用var不行,换成let就可以了

[复制链接]
发表于 2022-2-7 16:11:36 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 吴贤炬 于 2022-2-7 16:35 编辑

这是代码:
<script>
      window.onload = function () {
        var img = document.getElementById("img");
        var imgNum = document.getElementsByTagName("img");
        var imgList = document.getElementById("imgList");
        imgList.style.width = 652 * imgNum.length + "px";
        var btn = document.getElementById("btn");
        var liNum = document.getElementsByTagName("li");
        btn.style.left = (img.offsetWidth - btn.offsetWidth) / 2 + "px";
        var btnA = document.getElementsByTagName("a");
        btnA[0].style.backgroundColor = "white";
        for (let i = 0; i < btnA.length; i++) {
          btnA.num = i;
          btnA.onclick = function () {
            alert(btnA.num);
          };
        }
      };
    </script>
最佳答案
2022-2-7 16:42:51
或者可以用
  1. btnA.forEach((e, i) => {
  2.           btnA.num = i;
  3.           btnA.onclick = function () {
  4.             alert(btnA.num);
  5.           };
  6. })
复制代码

试试看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-2-7 16:19:30 | 显示全部楼层
可不可以把所有JS代码发一下,我不知道,
可能你前面也定义了 i 。

不建议使用 var
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-2-7 16:36:11 | 显示全部楼层
ckblt 发表于 2022-2-7 16:19
可不可以把所有JS代码发一下,我不知道,
可能你前面也定义了 i 。

前面应该没有定义i
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-2-7 16:41:12 | 显示全部楼层
报错了吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-2-7 16:42:51 | 显示全部楼层    本楼为最佳答案   
或者可以用
  1. btnA.forEach((e, i) => {
  2.           btnA.num = i;
  3.           btnA.onclick = function () {
  4.             alert(btnA.num);
  5.           };
  6. })
复制代码

试试看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-2-7 16:46:04 | 显示全部楼层
ckblt 发表于 2022-2-7 16:42
或者可以用

试试看

还没学到这个
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-2-7 16:47:02 | 显示全部楼层

就是点不了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-2-7 16:48:44 | 显示全部楼层
  1. a = [123, 456, 789]

  2. a.forEach((e, i) => {
  3.   console.log(e, i)
  4. })
复制代码

输出
  1. 123 0
  2. 456 1
  3. 789 2
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-2-7 16:50:41 | 显示全部楼层
点不了是什么意思
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-2-7 20:05:02 | 显示全部楼层
ckblt 发表于 2022-2-7 16:50
点不了是什么意思

感谢大佬,我去学闭包了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-2-7 20:43:00 | 显示全部楼层
你可以看看这篇文章:
zhuanlan.zhihu.com/p/51966830
讲的是 var 和 let 在 for 语句里的不同
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-2-8 19:13:17 | 显示全部楼层
ckblt 发表于 2022-2-7 20:43
你可以看看这篇文章:
zhuanlan.zhihu.com/p/51966830
讲的是 var 和 let 在 for 语句里的不同

ok,感谢大佬
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-12 16:41

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表