javascript - 如果我输入正确的答案,为什么我总是“错”?
问题描述
这个想法是要求用户提供 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);
解决方案
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)) { // ...
推荐阅读
- python - Sklearn PCA解释方差和解释方差比差
- jquery - 打开单个下拉菜单。简化代码
- reactjs - 将组件 defaultProps 设置为 null 是不好的做法吗?
- php - 为什么方法注入不适用于某些控制器方法?
- tsql - 如何用连字符和逗号分隔 concat 函数内的列?
- assembly - 指向不带 .data 部分的独立二进制代码中的字符串的指针
- javascript - 如何使用 JS 获取 JSON 文件中特定值的计数器?
- html - 如何解决:即使列表元素也不起作用
- reactjs - 反应路由器错误类型错误:_react.PropTypes 未定义
- php - 如何修复 PHPUnit 中的“PHP 致命错误:未捕获的 TypeError:getTest() 参数”错误