2012-12-22 76 views
0

好吧,所以我搞亂了陣列,現在我試圖得到第二個問題,回答是提出一個新消息,而不是「正確的!」。當在這種情況下發現它是正確的時,如果第二個問題正確,我希望它回覆「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; 
    } 
} 

回答

2

檢查錯誤控制檯(F12)。這裏有一個語法錯誤:

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

你錯過了一個結束括號。這些錯誤(語法錯誤)經常被瀏覽器捕獲,所以一個簡單的檢查應該修復它。

此外,你沒有得到輸出「gerp!」的原因是因爲你設置了一個變量爲innerHTML,但實際上並沒有更新該元素的innerHTML。因此,將此行添加到else if語句和else語句中。

document.getElementById("demo").innerHTML = x; 
+0

總是在Javascript中開發時保持控制檯的好建議。它可以節省很多的傷口和牙齒。 – RonaldBarzell

+0

雖然這是一個語法錯誤,但這並不妨礙'gerp!'從出現 – Dancrumb

+0

你知道我可以去解決問題嗎? 也謝謝指出語法錯誤,我會完全錯過了。 – TBW