首页 > 解决方案 > 如果我输入正确的答案,为什么我总是“错”?

问题描述

这个想法是要求用户提供 C 大调音阶的音符。正确答案是("C" || "D" || "E" || "F" || "G" || "A" ||"B")。然而,无论输入如何,这个基本程序总是产生相同的警报,即“else”语句之后的警报。

var answ = document.querySelector(".answer");
answ.addEventListener("click", which);

function which() {
  var give = document.querySelector(".guess");
  if (give === "C" || give === "D" || give === "E" || give === "F" || give === "G" || give === "A" || give === "B") {
    alert("Well done!");
    console.log(give);
  } else {
    alert("Wrong!");
  }
}
var answ = document.querySelector(".answer");
answ.addEventListener("click", which);

标签: javascript

解决方案


var give = document.querySelector(".guess");

将分配给give一个 HTML 元素(或者null如果没有元素匹配)。

这样的元素永远不会等于“C”、“D”等。您不会显示您的 HTML,但如果该元素是输入,您将需要访问它的值:

var give = document.querySelector(".guess").value;

顺便说一句,您可以将if语句简化为从数组中查找:

if(["C", "D", "E", "F", "G", "A", "B"].includes(give)) { // ...

推荐阅读