在Javascript中清除事件之后的变量

时间:2016-07-30 19:38:27

标签: javascript variables clear

我的代码正常运行。我正在尝试将文本区域的输入加起来。但是变量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。

感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

没关系。我发现在每次onclick事件后我都没有重置stat.sumstat.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;