0

我存储了两个生成模拟两个随机骰子的变量。我正在尝试将它们添加到另一段中,如下所示;但是,添加它们的行会生成“NaN”。有什么建议么?

<!doctype html>
<html>
  <head>
    <meta charset="UTF-8"/>
    <title>Rolling Two Dice</title>
  </head>
  <body>
    <p>Your first die rolled a <script>var roll1 = document.write(1 +
    Math.floor(6 * Math.random()))</script>.</p>
    <p>Your second die rolled a <script>var roll2 = document.write(1 +
    Math.floor(6 * Math.random()))</script>.</p>
    <p>The total of your rolls is <script>document.write(roll1 +roll2)</script>.</p>
</body>
</html>
4

3 回答 3

2

存储数字,而不是返回document.write(我不知道它返回什么)。此外,我已将您的 HTML 与您的 javascript 分开,因为使用document.write不是一个好习惯,并且将功能代码 (javascript) 与演示代码 (HTML) 混合是一种不好的做法。

HTML:

<body>
    <p>Your first die rolled a <span id="roll1"></span>.</p>
    <p>Your second die rolled a <span id="roll2"></span>.</p>
    <p>The total of your rolls is <span id="total"></span>.</p>
</body>

JS:

var roll1 = 1 + Math.floor(6 * Math.random());
var roll2 = 1 + Math.floor(6 * Math.random());
var total = roll1 + roll2;
document.getElementById('roll1').textContent = roll1;
document.getElementById('roll2').textContent = roll2;
document.getElementById('total').textContent = total;

*请注意,该textContent属性不适用于某些浏览器。

于 2012-09-11T17:23:50.003 回答
0

根据您的样本:

<!doctype html>
<html>
<head>
    <meta charset="UTF-8"/>
    <title>Rolling Two Dice</title>
    <script>
        var roll1 = 1 + Math.floor(6 * Math.random());
        var roll2 = 1 + Math.floor(6 * Math.random());
        var total = roll1 + roll2
    </script>
</head>
<body>
<p>Your first die rolled a <script>document.write(roll1)</script>.</p>
<p>Your second die rolled a <script>document.write(roll2)</script>.</p>
<p>The total of your rolls is <script>document.write( total )</script>.</p>
</body>
</html>

问题主要是:

<script>var roll1 = document.write(1 + Math.floor(6 * Math.random()))</script>

document.write 不返回可以分配给变量的值。

于 2012-09-11T17:27:03.057 回答
0

您需要将值分配给变量,然后将变量写入文档。

<script>var roll1 = 1 + Math.floor(6 * Math.random());  document.write(roll1)</script>

我还建议将所有脚本移动到一个块中,如 jbabey 所示。所以你的 html 中没有几行 JS。在单个块中使用 javascript 来使用值更新 span 的内容。

于 2012-09-11T17:21:46.570 回答