我想運行這段代碼,除了if語句之外,一切似乎都在工作。即使存在匹配,但它仍不會顯示代碼中顯示的正確答案,而是將代碼顯示在else語句中。破碎的「if」語句在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[3];
var colorDisplay = document.querySelector("#colorDisplay");
colorDisplay.textContent = pickedColor;
for (var i = 0; i < colors.length; i++) {
//add initial colors to squares
squares[i].style.background = colors[i];
//add event listener
squares[i].addEventListener("click", function() {
//get color of picked square
var clickedColor = this.style.background;
//compare to the pickedColor
console.log(clickedColor);
if (clickedColor === pickedColor) {
alert("COORREECCTT");
} else {
alert("WRROONGG!!");
}
});
}
body {
background-color: #232323;
}
.square {
width: 30%;
background-color: purple;
padding-bottom: 30%;
float: left;
margin: 1.66%;
}
#container {
max-width: 600px;
margin: 0 auto;
}
h1 {
color: #fff;
}
<body>
<h1>The Great <span id="colorDisplay">RGB</span> Color Game</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>
</body>
這就是爲什麼混合表示和數據通常是一個壞主意。更好的方法是將點擊處理程序僅附加到正確的div而不是全部。 – JJJ
正如下面的答案表明你在做'rgb(0,255,255)'==='rgb(0,255,255)''。如果您在'clickedColor'控制檯旁邊添加了'pickedColor',可能是一個簡單的捕獲.log – nilobarp