2013-06-03 75 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

如果我只想通过随机按钮点击计算器按钮的总和,那么代码如何? –