可以'我不明白为什么我的JS;不起作用

Can't figure out why my JS doesn't work

本文关键字:我的 为什么 JS 不起作用 明白 可以      更新时间:2023-09-26

我一直在摆弄JavaScript示例,自从我编辑了这个之后,我就不明白为什么它不起作用。在我看来一切都很好,但这是代码(JSFiddle)

https://jsfiddle.net/en2a8c1v/1/

function click(e) {
    document.body.style.backgroundColor='" + e.target.id + "';
}

document.addEventListener('DOMContentLoaded', function () {
  var divs = document.querySelectorAll('div');
  for (var i = 0; i < divs.length; i++) {
    divs[i].addEventListener('click', click);
  }
});

首先,确保在JS设置中,在加载类型下拉列表中没有启用换行(我没有使用换行头)。

接下来,您需要了解,当您调用e.target.id时,它已经是一个字符串变量。你实际上是在把背景颜色做成"e.target.id"。那不是一种颜色。

只需将document.body.style.backgroundColor='" + e.target.id + "'; 更改为document.body.style.backgroundColor= e.target.id;

我不打算提及这样一个事实,即这是一种糟糕的方式,因为我认为你只是在玩事件处理。

也许有人会觉得这很有用。使用CSS属性:背景颜色:rgb(x,y,z);

你可以用简单的方法来做,例如:

document.getElementById("elementID").style.backgroundColor = 'rgb('+ this.red + ', ' + this.green + ', ' + this.blue + ')';

这些r、g、b值可以是,例如:

this.red = 0;
this.green = 255;
this.blue = 130;