-1

我希望它显示骰子图像但没有输出?怎么了?我从 1-6 中选择一个随机数,它会显示骰子的面。那么它应该,但它不工作。我还想在其他地方显示图像而不是替换按钮。你是怎样做的?

<html>
<head><title>DiceBoy</title>
</head>
<body>
<script>
function getRandom(){
var RandomNumber1 = Math.floor(Math.random() * 6) + 1;
var RandomNumber2 = Math.floor(Math.random() * 6) + 1;
  if(RandomNumber1 == 1) document.write('<img src="dice1.png">');
  else if(RandomNumber1 == 2)  document.write('<img src="dice2.png">');
  else if(RandomNumber1 == 3)  document.write('<img src="dice3.png">');
    else if(RandomNumber1 == 4)  document.write('<img src="dice4.png">');
      else if(RandomNumber1 == 5)  document.write('<img src="dice5.png">');

                  else var  document.write('<img src="dice6.png">');


}

</script>
<input type="button" value="Throw Dices" onClick="getRandom();">
4

5 回答 5

6

这段代码看起来很糟糕,请确保您始终 DRY 代码:

function getRandom(){
     var RandomNumber1 = Math.floor(Math.random() * 6) + 1;
     var RandomNumber2 = Math.floor(Math.random() * 6) + 1;

     document.getElementById('result').innerHTML = '<img src="dice' + RandomNumber1 + '.png">';
     document.getElementById('result').innerHTML += '<img src="dice' + RandomNumber2 + '.png">';
}

http://jsfiddle.net/tzrGh/4/

于 2013-01-31T10:12:50.823 回答
2

var是不必要的。删除它,它的工作原理。

http://jsfiddle.net/rRhqn/

下次,打开您的 Javascript 控制台(例如,Chrome 中的 Ctrl+shift+J)并阅读出现的错误。


要更好地控制您的文档,请删除document.write并使用文档对象模型。

看看这个函数:

function writeDice(n) {
    var img = document.createElement('img');
    img.src = 'dice'+n+'.png';
    document.getElementById('dice_container').appendChild(img);
}

它创建一个img元素,src根据参数设置它,并将其附加到具有 ID 的元素dice_container

在您的 HTML 中,将此 ID 设置在您希望图像出现的位置。

演示:http: //jsfiddle.net/REPAe/

于 2013-01-31T10:10:31.837 回答
1

你有一个额外var的最后else

并且为了您希望向其他地方展示骰子,我将继续 Cristy 伟大的实施。

在按钮下添加一个 enpty div:

<input type="button" value="Throw Dices" onClick="getRandom();">
<div id="diceImage1"> </div>
<div id="diceImage2"> </div>

然后使用此功能:

function getRandom(){
  var RandomNumber1 = Math.floor(Math.random() * 6) + 1;
  var RandomNumber2 = Math.floor(Math.random() * 6) + 1;

  document.getElementById("diceImage1").innerHTML = '<img src="dice' + RandomNumber1 + '.png">';
  document.getElementById("diceImage2").innerHTML = '<img src="dice' + RandomNumber2 + '.png">';
}
于 2013-01-31T10:10:22.023 回答
1

最后你有一个额外的 var

else document.write('<img src="dice6.png">'); //removed the var 
于 2013-01-31T10:10:43.037 回答
0

你可以这样做:

function getRandom(){
  var RandomNumber1 = Math.floor(Math.random() * 6) + 1;
  document.getElementById("showImage").innerHTML='<img src="dice' + RandomNumber1 + '.png">';
}

并在标记中

在您的按钮之前:

<div id="showImage"></div>
于 2013-01-31T10:21:00.230 回答