2013-12-20 34 views
0

我已經寫了一個小程序,同時學習JavaScript嘗試並讓用戶選擇兩個匹配卡。該程序在Safari和Explorer(當前版本)中正常工作,但無法在Chrome或Firefox中使用。我在這裏提供了一個精簡版。在Safari中,單擊顯示的圖像並運行該功能並加載圖像,然後選擇下一張圖像以查看它是否匹配。在Chrome瀏覽器中,如果您點擊圖片沒有任何反應在這個版本中,我在這裏複製了click,只是在Safari中顯示圖像。我無法理解爲什麼Chrome瀏覽器會不會運行它? PS我很新學習JavaScript,並沒有jQuery的知識或除JavaScript之外的其他任何東西。JavaScript函數不能在鉻合作

<!DOCTYPE html> 
<html> 
<head> 
<title>Match the Cards</title> 
<link rel="stylesheet" href="stylesheet1.css" type="text/css" /> 
<script> 
var turns = 0; 
var firstcard; 
var secondcard; 
var backcard ="images/blueback.png"; 
var faces = new Array(
"images/kh.png", "images/ks.png"); 

function ChooseCard(card) { 
if (turns == 2) { 
return; 
}if (turns == 0) { 
firstcard = card; 
document.images(card).src = faces[card]; 
turns = 1; 
} else { 
secondcard = card; 
document.images(card).src = faces[card]; 
turns = 2; 
} 
} 

</script> 

</head> 

<body> 

<table> 
<tr> 
<td><img id="image_point" onclick="ChooseCard(0);" src="images/blueback.png" /></td> 
<td><img id="image_point" onclick="ChooseCard(1);" src="images/blueback.png" /></td> 
</tr> 
</table> 

</body> 
</html> 
+1

控制檯說什麼?https://developers.google.com/chrome-developer-tools/docs/console –

+0

另外它可能是一個更好的主意,把它放在一個jsfiddle看到在行動 –

+6

什麼是CONSOLE SAY? 「YERP YERP YERP YERP YERP YA YERP!」控制檯說什麼? 「大人吃了大飽肚子!」 – AlienWebguy

回答

4

document.images是一個數組(樣物體,NodeList要準確),不是一個函數。 ()用於調用函數,而[]用於訪問對象(包括數組)的屬性。

所以,你應該寫:

document.images[card].src = faces[card]; 

甚至使用item方法(這是一個函數)的節點列表:

document.images.item(card).src = faces[card]; 

如果你做的這些方法之一,它會在Safari和IE中也是如此,因爲這是標準方式。

jsFiddle Demo(圖像不會顯示出來,但它現在的作品)


其實,如果你看看你的browser console,它會告訴你,images是不是一個不錯的消息的功能:

Uncaught TypeError: Property 'images' of object #<HTMLDocument> is not a function


注:我知道你是一個初學者,但 縮進你真的應該讀了,以及爲什麼它非常重要。實際上,你永遠不應該向別人展示自己的代碼(包括你未來的自己)。

1

我想你想:的

document.images[card].src 

代替

document.images(card).src 

document.images是一個數組,所以你需要使用[index]訪問單個陣列項目。

+0

非常感謝。 – Jase