2013-08-06 72 views
0

我想讓這個代碼生成10個圖像的隨機數,所以每次我點擊按鈕,我會得到一個隨機數的圖像,我只想這1個圖像和該按鈕不會消失,所以我可以再試一次。相同的隨機圖像推按一個按鈕

<!DOCTYPE html> 
<html> 
<body> 

<input class="randombutton" type="button" value="Randomize" onclick="randomImg1()"/> 

<script type="text/javascript"> 
    function randomImg1() { 


     myImages1 = "Myimage.jpg"; 

     var rnd = Math.floor(Math.random() * 10); 

    document.write(myImages1[rnd]); 
    } 

</script> 

</body> 
</html> 

回答

3

您需要動態更新內容,而不是使用document.write。另外,myImages1必須是一個數組。

<!DOCTYPE html> 
<html> 
<body> 

<input class="randombutton" type="button" value="Randomize" onclick="randomImg1()"/> 

<script type="text/javascript"> 
    function randomImg1() { 


     myImages1 = new Array(); 
     myImages1[0] = "Myimage.jpg"; 
     myImages1[1] = "Myimage1.jpg"; 

     var rnd = Math.floor(Math.random() * myImages1.length); //incorporated other solution 

     document.getElementById("image").innerHTML = "<img src='" + myImages1[rnd] + "' alt='image'></img>"; 
    } 

</script> 
<div id="image"></div> 
</body> 
</html> 
+0

random的* 10應該是數組中元素的個數。以上可能會產生未定義的圖像源。 – denov

+0

@denov添加到解決方案 –

+0

hmm .. iam嘗試你的代碼,但我仍然無法得到它的工作 –

3

myImages1是一個不是數組的字符串。你需要將random()乘以數組元素的個數。

function randomImg1() { 
    var myImages1 = ['Myimage.jpg']; 
    var rnd = Math.floor(Math.random() * myImages1.length); 
    document.write(myImages1[rnd]); 
}