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

如何使用鼠标悬停效果更改背景颜色?

如何使用鼠标悬停效果更改背景颜色?

互换的青春 2021-10-14 10:23:34
我有很多小方块,它们有一类“newDiv”。当鼠标光标在它们上面时,我想将它们的背景颜色更改为黑色。但是,即使鼠标光标消失,我也希望它们保持不变(背景颜色为黑色)。我正在尝试使我的代码正常工作,但我总是收到语法错误或根本不起作用。我改变了代码,试图修复语法等。black = true;let tiles = document.getElementsByClassName('newDiv');tiles.forEach(tile => {tile.addEventListener('mouseover', function(e){  if(black){  tile.style.backgroundColor = "black";  }}) }未捕获的语法错误丢失 ) 在参数列表tiles.forEach 之后不是函数。
查看完整描述

3 回答

?
蝴蝶刀刀

TA贡献1801条经验 获得超8个赞

这是因为tiles不是数组。它看起来像一个,但实际上是一个HTMLCollection.


您可以通过转换为Arraywith来解决此问题Array.from():


let tiles = Array.from(document.getElementsByClassName('newDiv'));

或者改用for循环:


for (const tile of tiles) {

  tile.addEventListener('mouseover', e => {

    tile.style.backgroundColor = "black";

  });

}


查看完整回答
反对 回复 2021-10-14
?
尚方宝剑之说

TA贡献1788条经验 获得超4个赞

因为你实际上错过了一个 ')'; 如果您使用箭头功能会更好:)


let black = true;

let tiles = document.getElementsByClassName('newDiv');


tiles.forEach(tile => {

tile.addEventListener('mouseover', e =>{

  if(black){

    tile.style.backgroundColor = "black";

  }

}) 

})

此外,如this answer中所写-您使用了html集合而不是数组。


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

添加回答

举报

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