我想製作一個使用HTML,CSS和Javascript的小遊戲。簡單的Javascript文件無法正常工作
HTML和CSS和大部分的Javascript代碼似乎工作正常。然而,當在FireFox中啓動程序並嘗試點擊背景RGB值與存儲在變量中的RGB值相匹配的正方形div時,我會得到錯誤的答案。這是假設警告用戶「正確」,而是所有警報輸出「錯誤」。
下面是HTML文件
<!DOCTYPE>
<html>
<head>
<title>Color Game</title>
<link rel="stylesheet" type="text/css" href="colorGame3.css">
</head>
<body>
<h1>
RGB Color Game
<span id = "colorDisplay">
RGB
</span>
</h1>
<div id="container">
<div class="square"></div>
<div class="square"></div>
<div class="square"></div>
<div class="square"></div>
<div class="square"></div>
<div class="square"></div>
</div>
<script type="text/javascript" src="colorGame3.js"></script>
</body>
</html>
這裏是CSS文件
body{
background-color: #232323;
}
.square{
width:30%;
background:purple;
padding-bottom:30%;
float:left;
margin:1.66%;
}
#container{
max-width:600px;
margin:20px auto;
}
這裏是JavaScript文件
var colors = [
"rgb(255,0,0)",
"rgb(255,255,0)",
"rgb(0,255,0)",
"rgb(0,255,255)",
"rgb(0,0,255)",
"rgb(255,0,255)"
]
var squares = document.querySelectorAll(".square");
var pickedColor = colors[2];
var colorDisplay = document.getElementById("colorDisplay");
colorDisplay.textContent = pickedColor;
for(var i = 0; i<squares.length;i++){
squares[i].style.background = colors[i];
squares[i].addEventListener("click",function(){
var clickedColor = this.style.background;
if(clickedColor === pickedColor){
alert("Correct");
}
else{
alert("Wrong");
}
});
}
你在控制檯上看到了什麼錯誤? –
我認爲你的問題是你使用背景而不是backgroundColor。但我不確定 – Kerndog73
你應該console.log'pickedColor'和'clickedColor',它們不是同一個值。在Chrome中,至少在Firefox中可能是相同的,當從'style.background'獲取值時,值在逗號分隔符之後被格式化爲空格 –