2013-02-13 104 views
0

我不能让一切都集中。 这就是我得到:JS平均计算器

xxx xxx xxx xxx xxx 

我要的是

xxx 
xxx 
xxx 
xxx 
xxx 

在网页horizo​​nally中心

我也不能得到平均的功能,干活不知道我在哪里出错了。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<title>Average Calculator</title> 
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" /> 
<h1 style="text-align:center;">My Average Calculator</h1> 
<script type="text/javascript"> 
function getTotal() { 
var form = document.getElementById('number'); 
var numb1 = parseInt(form.numb1.value); 
var numb2 = parseInt(form.numb2.value); 
var numb3 = parseInt(form.numb3.value); 
var numb4 = parseInt(form.numb4.value); 
var numb5 = parseInt(form.numb5.value); 
var total = document.getElementById('total'); 
var average = document.getElementById('average'); 
if (!numb1) { 
    numb1 = 0; 
} 

if (!numb2) { 
    numb2 = 0; 
} 

if (!numb3) { 
    numb3 = 0; 
} 

if (!numb4) { 
    numb4 = 0; 
} 
if (!numb5) { 
    numb5 = 0; 
} 

total.innerHTML = 'Total: ' + (numb1 + numb2 + numb3 + numb4 + numb5); 
average.innerHTML = 'Average: ' + (total/5); 
} 
</script> 
</head> 
<form id="number"> 
<body> 
First Number: <input type="text" name="numb1" onkeyup="getTotal();" /> 
Second Number: <input type="text" name="numb2" onkeyup="getTotal();" /> 
Third Number: <input type="text" name="numb3" onkeyup="getTotal();" /> 
Fourth Number: <input type="text" name="numb4" onkeyup="getTotal();" /> 
Fifth Number: <input type="text" name="numb5" onkeyup="getTotal();" /> 
    <div id="total">Total:  </div> 
    <div id="average">Average: </div> 
</body> 
</html> 

回答

1

total/5,其中total是由ID取出的元件你。难怪它不工作;)

此外,你可能想了解循环。迭代,而不是numb1numb5。在每个输入标签 结束

<fieldset id="numbers"><legend>Numbers</legend> 
    First number: <input type="number" onkeyup="getTotal();" onchange="getTotal();" /><br /> 
    Second number: <input type="number" onkeyup="getTotal();" onchange="getTotal();" /><br /> 
    Third number: <input type="number" onkeyup="getTotal();" onchange="getTotal();" /><br /> 
    Fourth number: <input type="number" onkeyup="getTotal();" onchange="getTotal();" /><br /> 
    Fifth number: <input type="number" onkeyup="getTotal();" onchange="getTotal();" /> 
</fieldset> 
<div id="total">Total: --</div> 
<div id="average">Average: --</div> 
<script type="text/javascript"> 
    function getTotal() { 
     var inputs = document.getElementById('numbers').getElementsByTagName('input'), 
      count = inputs.length, i, total = 0; 
     for(i=0; i<count; i++) total += parseInt(inputs[i].value || "0",10); 
     document.getElementById('total').firstChild.nodeValue = "Total: "+total; 
     document.getElementById('average').firstChild.nodeValue = "Average: "+(total/count); 
    } 
</script> 
+0

哇,这是很多简单:

像这样的事情会很好地工作。是的,下周我们不会进入循环。谢谢你的帮助 – user2069296 2013-02-14 01:04:18

+0

我必须使用: onchange事件处理程序 calcAvg() performCalc() calcResult averageCalc() parseInt函数() 这很烂,因为我得到了它,我喜欢的方式和现在我得改变它 – user2069296 2013-02-14 02:33:22

0

附加BR标签<br/>和改变这种

average.innerHTML = 'Average: ' + ((numb1 + numb2 + numb3 + numb4 + numb5)/5); 
+0

我试过这个,但结果仍然一样,但是非常感谢你 – user2069296 2013-02-14 00:58:19

+0

很快我发现了一个错误谢谢你 – user2069296 2013-02-14 01:06:50