如何通过数组实现点击按钮切换背景色?现有代码运行异常求指导
代码问题排查与修复
- 核心错误原因:你使用
const关键字声明了变量i,JS中const用于声明不可重新赋值的常量,你在点击事件回调中执行i = i < colors.length ? ++i : 0的重新赋值操作会直接触发报错,打断后续逻辑执行,所以背景色设置不会生效。 - 修复方法:将
const i = 0修改为let i = 0即可,let声明的变量支持重新赋值。 - 额外优化建议:原逻辑的边界判断存在漏洞,你的
colors数组长度为3,合法下标范围是0~2,原判断条件i < colors.length会在i=2时满足条件,执行++i后得到下标3,访问colors[3]会返回undefined,导致背景色设置失效,建议将判断条件调整为i < colors.length - 1。
修复后的完整代码如下:
const colors = ['#ee5253', '#00bce4', '#222f3e'] // 把const改为let声明 let i = 0 const button = document.getElementById('button') button.addEventListener('click', function() { i = i < colors.length - 1 ? ++i : 0 document.querySelector('body').style.background = colors[i] })
内容的提问来源于stack exchange,提问作者jadegreen
相关产品推荐
相关产品推荐

