2012-12-05 162 views
-3

我試圖製作一個代碼,它將從列表中選取一個隨機圖像,並要求用戶嘗試識別它。到目前爲止,我可以生成圖像,但嘗試將字符串與數組元素進行比較時遇到了麻煩。將字符串與javascript中的數組元素進行比較

var imageArray=new Array() 
myImages[1]="image1.jpg" 
myImages[2]="image2.jpg" 
myImages[3]="image3.jpg" 

var randNum=Math.floor(Math.random()*imageArray.length); 

function pickImg() 
{ 
if {randNum==0) 
{ 
randNum=1; 
} 
document.write('<img src="'+imageArray[randNum]+'" border=0>'); 
} 

pickImg() 

function checkAns() 
{ 
var str = imageArray[randNum]; 
var n = str.search('textBox'); 
if(n = -1) 
{ 
alert{"Wrong Answer") 
} 
Else 
{ 
alert("Right Answer") 
} 
} 

對於第二個函數並比較這兩個字符串,我感到茫然。感謝您的任何幫助。

+0

它應該是'如果(N == -1)' – janith

+0

...也應該是'else',不'Else' –

+0

@AlexanderPavlov該死, 有太多...... – xiaoyi

回答

1

。在你的代碼中的錯誤

if(n = -1)//Assigns -1 as the value of 'n'(Used assignment operator here) 
{ 
    alert{"Wrong Answer") 
} 
Else 
{ 
    alert("Right Answer") 
} 

嘗試更改代碼以

if(n == -1)//Checking whether the value of 'n' is -1 or not(comparison) 
{ 
    alert("Wrong Answer") 
} 
else 
{ 
    alert("Right Answer") 
} 
+0

請花時間解釋作業和比較。 =) –

+0

你的代碼中還有一個語法錯誤。 '警報{' – xiaoyi

+0

感謝所有的迴應!我試圖將用戶輸入與數組元素的一部分進行匹配,以製作簡單的記憶遊戲。如果輸入正確或不正確,頁面將顯示。 – Alex

3

假設你的輸入有ID textBox,你應該使用:

var check = str.indexOf(document.getElementById('textBox').value); 
if(check == -1) 
{ 
... 
  • search預計正則表達式對象作爲參數,而不是字符串
  • =操作分配值,而==操作比較
  • JS是區分大小寫的:你要找的else,不Else
  • 縮進對可維護代碼非常重要。
相關問題