这个问题有点晦涩和具体,所以我想我在任何地方都找不到。

我在一个“测验”中有3个输入,只是想知道是否还有更好的方法可以执行以下操作:

我正在使用If... Else...语句来检查答案,并想使其不区分大小写

这是我的尝试的简化版本(请放轻松,我不是特别高级,我知道有更好的方法可以实现这一目标,但我想以这种方式实现。) )

<input id="ans1">
<input id="ans2">
<input id="ans3">


还有Javascript ...

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');
  }}


因此,基本上,我只是想知道是否还有其他更简洁或更好的方法?

谢谢,任何帮助表示赞赏:)

最佳答案

当然,您可以使用一个函数来减少重复的代码:

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");
  }
}

关于javascript - 更简洁,不区分大小写的测验,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27336424/

10-10 18:49