如何在Javascript函数中更改主体背景颜色



我正在Raspberry Pi网站上尝试猜颜色练习的挑战部分(https://projects.raspberrypi.org/en/projects/cd-beginner-javascript-sushi/8)。

挑战要求我将身体背景颜色更改为游戏中的获胜颜色,在游戏中,你会看到顶部的RGB颜色代码和下面的6个彩色圆圈。你必须通过点击每一个来猜测6个彩色圆圈中哪一个有显示的RGB颜色代码,程序会告诉你是正确的还是不正确的。

在选择正确的圆圈后,主体背景颜色应该更改为正确圆圈的颜色,这就是我遇到问题的地方。我认为我的代码是对的,但我认为问题涉及某些变量的局部性,而没有考虑到这一点。

有问题的区域是我的script.js文档中的第40-50行;还有一些我用来排除故障的注释行。document.body.style.backgroundColor行确实有效,但对setButtonColour的函数调用以及setAttribute函数都不起作用。

我的代码在这里https://trinket.io/html/ad056ed56d?runMode=autorun

问题是document.getElementsByTagName('body');返回<body>元素的列表。

您应该将此行更改为var winning = document.getElementsByTagName('body')[0];以访问第一个(也是唯一一个(<body>元素。

如果要在javascript中引用<body>,则应使用document.body

DOCS:

  • https://developer.mozilla.org/en-US/docs/Web/API/Document/body
  • https://www.w3schools.com/jsref/prop_doc_body.asp

代码中的第46行似乎有一个错误:

winning.setAttribute('style','background-color: rgb('+ red +','+ green +','+ blue +');');

看看这行的末尾-你不应该在background-color之后使用;,就在这里+');');

document.getElementById('btn').addEventListener('click',function(){
document.body.style.backgroundColor = 'red';
});
<button id="btn">Change body color</button>

您生成的颜色没有保存正确的答案。

if (i === answerButton) {

heading.innerHTML = 'R:' + red + ' G:' + green + ' B:' + blue;
//add this ->
winnerRed = red;
winnerGreen = green;
winnerBlue = blue;
}

你这样称呼它:

document.body.style.backgroundColor = "rgb("+ winnerRed +","+ winnerGreen +","+ winnerBlue + ")";

最新更新