好吧,我认为我的代码的问题与我激活代码的实际 html 页面有关,但我不能确定。 我想做的是通过数组询问两个问题。我希望第二个问题显示“gerp”而不是正确的,并且如果您错了,它会通知您您在第二个问题上是错的。
这是我在页面上用来开始“谜语”的内容:
<button onclick="myFunction()">Click Me</button>
<p id="demo"></p>
这是我在与 html 文件分开的 js 文件中使用的代码(抱歉,如果我听起来很傻,我只是想具体一点):
var i = 0;
var myArray = [{
q: "What was her favorite Color?",
a: "purple" }, {
q: "gymhoaccetpptfe",
a: "rev six nine eleven"}];
function myFunction() {
var x;
var name = prompt(myArray[i].q);
if (name == myArray[i].a) {
x = document.getElementById("demo").innerHTML + " " + "Correct!" + " " + "Listen!"
+ " " +
"http://www.npr.org/2010/02/12/123534818/carl-sagan-and-ann-druyans-ultimate-mix-tape"
;
i= i + 1 ;
document.getElementById("demo").innerHTML = x;
} else if ((name == myArray[i + 1].a)) {
x = document.getElementById("demo").innerHTML + " " + "gerp!";
document.getElementById("demo").innerHTML = x;
} else {
x = document.getElementById("demo").innerHTML + name + " " + "is" + " " + "wrong!";
document.getElementById("demo").innerHTML = x;
}
}
我只想在正确回答第二个问题时显示“Gerp”。
最佳答案
这是因为在第一个 if 中,您执行了 i=i+1
,但在第二个 if 中,对于 gerp,您要检查 i + 1,这将是 2,即第三个要素。除非你需要它是动态的,否则只需使用相应的索引:
... else if(name == myArray[1].a) { ...
关于javascript - 我开始脚本的方式有问题吗?尝试让数组为每个答案输出不同的响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13999664/