为了账号安全,请及时绑定邮箱和手机立即绑定

将其设为未定义

将其设为未定义

MM们 2021-10-14 14:10:13
在下面的代码中,我收到一个错误,无法更改未定义的背景颜色。当我用这个代码替换 squares[i] 时。我不明白为什么?var colors =[    "rgb(255, 0, 0)",    "rgb(255, 255, 0)",    "rgb(0, 255, 255)",    "rgb(0, 0, 255)",    "rgb(0, 255, 0)",    "rgb(255, 0, 255)"];var colorPicked = colors[3];var head = document.querySelector("#color");head.textContent = colorPicked;var squares = document.querySelectorAll(".square");for(let i=0;i<squares.length;i++){    //to apply colors array on the square    squares[i].style.backgroundColor = colors[i];    //adding click event listener to square    squares[i].addEventListener("click",()=>{        var chosenColor = this.style.backgroundColor;        if(chosenColor == colorPicked){            alert("correct")        }else{            alert("wrong")        }    })}
查看完整描述

1 回答

?
小怪兽爱吃肉

TA贡献1852条经验 获得超1个赞

Arrow function (=>)没有自己的this。使用普通函数语法或squares[i]在事件处理函数内部使用:

var chosenColor = squares[i].style.backgroundColor;


查看完整回答
反对 回复 2021-10-14
  • 1 回答
  • 0 关注
  • 132 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信