JS的for循环事件,为什么用this

本文探讨了在JavaScript中使用for循环为li元素添加点击事件时遇到的问题。当直接使用list[i]作为引用时,由于作用域问题,点击事件触发时会导致`undefined`错误。原因是循环完成后,i的值已变为5,而点击时尝试访问list[5],但可能不存在。为了解决这个问题,文章建议使用`this`关键字,因为它在事件处理函数中会指向触发事件的元素,从而确保正确引用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

对于这样一个简单的结构,想要实现点击每个li的时候背景颜色变换

 

如果该处使用list[i],点击li时,控制台会输出Cannot set properties of undefined

原因是JS会先将for循环执行完,即分别给li标签注册了一个onlick事件,当点击li时,才会执行function中的内容。

所以当for循环执行完(退出循环时),i为5

当点击li时,执行的实际上为

 

此时实际上已经与外for循环无关

为list[i]就是list[5],但list[5],不存在,所以输出undefined

但是如果使用this

 this 指向的就是当前list[i],故正确

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值