这个问题有点模糊和具体,所以我不认为我可以在任何地方找到它,所以...
我在测验中有3个输入,'并且只是想知道是否有更好的方法来做到以下几点:
我正在使用If... Else...
语句检查答案,并希望将不区分大小写
这是(一个精简的版本)我的尝试...(请放轻松我,我不是特别先进,我知道有更好的方法来实现这个目标但是我想这样做......)
<input id="ans1">
<input id="ans2">
<input id="ans3">
var ans1 = document.getElementById("ans1").value;
var ans2 = document.getElementById("ans2").value;
var ans3 = document.getElementById("ans3").value;
var ans1 = ans1.toLowerCase();
var ans2 = ans2.toLowerCase();
var ans3 = ans3.toLowerCase();
if (ans1 == "hola") {
alert('Correct');
} else {
alert('Incorrect');
}
if (ans2 == "llamas") {
alert('Correct');
} else {
alert('Incorrect');
}
if (ans3 == "me") {
alert('Correct');
} else {
alert('Incorrect');
}}
所以基本上,我只是想知道是否有更简洁或更好的方式来做这件事?
谢谢,任何帮助表示感谢:)
答案 0 :(得分:1)
当然,您可以使用函数来减少重复的代码:
function checkAnswer(id, correctResponse) {
var answer = document.getElementById(id).value.toLowerCase();
if(answer === correctResponse) {
alert("Correct");
} else {
alert("Incorrect");
}
}
checkAnswer("ans1", "hola");
checkAnswer("ans2", "llamas");
checkAnswer("ans3", "me");
您还可以创建一个将元素与答案相关联的对象:
var correctAnswers = {
"ans1": "hola",
"ans2": "llamas",
"ans3": "me"
};
for(var id in correctAnswers) {
var answer = document.getElementById(id).value.toLowerCase();
if(answer === correctAnswers[id]) {
alert("Correct");
} else {
alert("Incorrect");
}
}
答案 1 :(得分:1)
如何使用Array
?
var ids = [
"ans1",
"ans2",
"ans3"
];
var answers = [
"hola",
"llamas",
"me",
];
for(var i = 0; i < ids.length; ++i) {
var elem = document.getElementById(ids[i]);
var user = elem.value;
var answer = answers[i];
if (answer == user.toLowerCase()) {
alert('Correct');
} else {
alert('Incorrect');
}
}