2013-06-03 103 views
0

我只是想隨機點擊一些按鈕,然後當我點擊總和按鈕時,它會顯示點擊按鈕值結果的總和,我需要使用java腳本的代碼。我只是想隨機點擊一些按鈕,然後當我點擊總結按鈕,它會顯示總和

<!DOCTYPE html> 
<html> 
<head> 
<script> 
var mynum = new Array(6); 
var i = 0; 

unction buttonClicked(obj) { 
if (i < mynum.length) 
mynum[i++] = obj.value; 
else alert("Array limit reached"); 
} 

function sum() { 
sumOfArray = 0; 
for (j = 0; j < i; j++) 
sumOfArray += parseInt(mynum[j++]); 
alert("Sum = " + sumOfArray); 
} 

</script> 
</head> 
<body> 


<p id="demo">Result</p> 


button type="button" onclick="buttonClicked(2)">1</button> 

<button type="button" onclick="buttonClicked(3)">2</button> 
<button type="button" onclick="buttonClicked(3)">4</button> 
<button type="button" onclick="buttonClicked(3)">8</button> 


<button type="button" onclick="sum()">Sum</button> 

</body> 
</html> 
+0

當你說你想點擊隨機,你的意思是你想_The用戶_能夠點擊隨機按鈕,對不對?不是說你想用JS的'Math.random()'以編程方式點擊事物嗎?在你的函數中試試'mynum [i ++] = obj',因爲你在'obj'參數中傳遞的值是數字... – nnnnnn

回答

2

這條線:

unction buttonClicked(obj) { 

應該是:

function buttonClicked(obj) { 

如你的值發送到功能,以及含有該值不是一個對象,這樣的:

mynum[i++] = obj.value; 

應該是:

mynum[i++] = obj; 

當你有數組中的數字,你不應該解析。這:

sumOfArray += parseInt(mynum[j++]); 

應該是:

sumOfArray += mynum[j++]; 

邊注:當你使用parseInt,你應該指定基作爲第二個參數,否則將解析使用基地8零開始的數而不是10


你可能想一個值發送到對應於什麼按鈕顯示的功能,所以這樣的:

button type="button" onclick="buttonClicked(2)">1</button> 
<button type="button" onclick="buttonClicked(3)">2</button> 
<button type="button" onclick="buttonClicked(3)">4</button> 
<button type="button" onclick="buttonClicked(3)">8</button> 

應該是:

<button onclick="buttonClicked(1)">1</button> 
<button onclick="buttonClicked(2)">2</button> 
<button onclick="buttonClicked(4)">4</button> 
<button onclick="buttonClicked(8)">8</button> 
+0

+1在Sum()結束時重置i也是一個好主意。 – Dampsquid

+0

@Dampsquid:好點,但這取決於您是要重新開始還是繼續添加更多值。 – Guffa

+0

如果我只想通過隨機按鈕點擊計算器按鈕的總和,那麼代碼如何? –