2013-08-06 6 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

* 10 случайных чисел должно быть числом элементов в массиве. вышеизложенное может создать неопределенный источник изображения. – denov

+0

@denov Добавлено в решение –

+0

hmm .. iam попробовал ваш код, но я все еще не могу заставить его работать –

3

myImages1 - это строка, а не массив. И вам нужно несколько случайных() по количеству элементов в массиве.

function randomImg1() { 
    var myImages1 = ['Myimage.jpg']; 
    var rnd = Math.floor(Math.random() * myImages1.length); 
    document.write(myImages1[rnd]); 
} 
Смежные вопросы