2012-09-11 64 views
0

我已經存儲了兩個變量,它們會生成模擬兩個隨機擲骰的變量。我試圖將它們添加到另一段中,如下所示;但是,添加它們的線會生成「NaN」。有什麼建議麼?在JavaScript中添加兩個變量,其中包含HTML

<!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> 

回答

0

您需要將值分配給變量,然後將變量寫入文檔。

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

我也建議所有的腳本移動到一個單獨的塊,如圖jbabey。所以你不會在你的html中有很少的JS行。在單個塊中使用javascript以更新值的跨度內容。

2

存儲數字,而不是從document.write(我不知道它返回什麼)的回報。此外,我已經從你的JavaScript中分離出你的HTML,因爲使用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屬性不會有一些瀏覽器。

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> 

文件撰寫不返回可以分配給一個變量的值。

相關問題