0

さて、私は配列をいじっています。今、私は「正しい」の代わりに新しいメッセージを表示するために答えられる2番目の質問を取得しようとしています。この場合、正しいことがわかったら、2番目の質問が正しければ「gerp」と返信します。しかし、私はそれを行う方法が完全にはわかりません。私は何を台無しにしていますか?

 var i = 0;

 var myArray = new Array({
   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!";
     i = i + 1;
     document.getElementById("demo").innerHTML = x;
   } else if ((name == myArray[i + 1].a) {
     x = document.getElementById("demo").innerHTML + " " + "gerp!";
   } else {
     x = document.getElementById("demo").innerHTML + name + " " + "is" + " " + "wrong!";
     document.getElementById("demo").innerHTML = x;
   }
 }
4

1 に答える 1

2

エラーコンソールを確認してください(F12)。ここに構文エラーがあります:

else if ((name == myArray[i + 1].a)
{
...

終了括弧がありません。これらのエラー(構文エラー)はブラウザによって頻繁に検出されるため、簡単なチェックで修正する必要があります。

また、出力「gerp!」が表示されない理由 に変数を設定したがinnerHTML、実際innerHTMLには要素のを更新していないためです。したがって、この行をelse ifステートメントとステートメントの両方に追加しelseます。

document.getElementById("demo").innerHTML = x;
于 2012-12-22T00:09:49.973 に答える