我的代码正常运行。我正在尝试将文本区域的输入加起来。但是变量values
在每次onclick事件后都会保持其值。
<script type="text/javascript">
var values = "";
var stat = new Object();
stat.sum = "0";
stat.sumSquare = "0";
stat.grabInput = function() {
values = "0";
var txtValues = document.getElementById("txtInput");
values = txtValues.value;
values = values.split(" ");
}
stat.adder = function() {
for (i=0;i<values.length;i++){
stat.sum=parseFloat(stat.sum)+parseFloat(values[i]);
}
}
stat.squareAdder = function() {
for (i=0;i<values.length;i++) {
stat.sumSquare=parseFloat(stat.sumSquare)+(parseFloat(values[i])*parseFloat(values[i]));
}
}
stat.showSum = function() {
stat.grabInput();
stat.adder();
document.getElementById("answers").innerHTML = "The sum is: "+stat.sum+"<br />";
}
stat.showSquareSum = function() {
stat.grabInput();
stat.squareAdder();
document.getElementById("answers").innerHTML = "The squared sum is: "+stat.sumSquare;
}
</script>
<form action="">
<fieldset>
<textarea id="txtInput" name="txtInput"></textarea>
<input type="button" value="Sum" onClick="stat.showSum();" />
<input type="button" value="Square Sum" onClick="stat.showSquareSum();" />
</fieldset>
<div id="answers"></div>
</form>
我只是不知道为什么values = "0";
不会将它重置为0。
感谢您的帮助!
答案 0 :(得分:0)
没关系。我发现在每次onclick事件后我都没有重置stat.sum
和stat.sumSquare
。
stat.adder = function() {
stat.sum = "0";
for (i=0;i<values.length;i++){
stat.sum=parseFloat(stat.sum)+parseFloat(values[i]);
}
}
stat.squareAdder = function() {
stat.sumSquare = "0";
for (i=0;i<values.length;i++) {
stat.sumSquare=parseFloat(stat.sumSquare)+(parseFloat(values[i])*parseFloat(values[i]));
}
}
现在它就像一个魅力!
答案 1 :(得分:0)
你宣布价值=&#34; 0&#34;在每个onclick上。这就是为什么它持有&#34; 0&#34;