0

因此,在我的 JavaScript 网络应用计算器中,添加效果很好。但是,当我尝试编写减法计算器时,一切正常,除了当我尝试使用计算器时,加法工作正常,但是当我尝试减去两个数字时,它只是说:NaN 这是我的计算器。减法计算器从“减法计算器!”的段落开始。

这是我的代码:

<!DOCTYPE html>
<html>
<body>
    <p>Addition Calculator!</p>
    <input id="n1" value=""/>
    <input id="n2" value=""/>
<button type="button" onclick="myFunction()">Submit</button>
    <p id="answer"></p>
    <script>
    function myFunction() {

        var n1=document.getElementById("n1").value;

        var n2=document.getElementById("n2").value;
        answer = ( Number(n1) + Number(n2) );

        document.getElementById("answer").innerHTML=answer;
    }


    </script>
    <p>Subtraction Calculator!</p>
    <input id="sn1" value=""/>
    <input id="sn2" value=""/>
    <button type="button" onclick="subtract()">Submit</button>
    <p id="sanswer"></p>

    <script>
    function subtract() {
        var sn1=document.getElementById("sn1").value;
        var sn1=document.getElementById("sn2").value;
        stotal = ( Number(sn1) - Number(sn2) );
        document.getElementById("sanswer").innerHTML=stotal;
    }


    </script>


    </body>

</html>
4

2 回答 2

4

问题是这一行:

var sn1=document.getElementById("sn2").value;

您有一个错字,您正在创建第二个sn1变量而不是sn2. 这意味着在这条线上:

stotal = ( Number(sn1) - Number(sn2) );

...您在使用时可能会出现参考错误,但浏览器会选择在运行函数时提供sn2的元素。和一个涉及给的减法。id="sn2"NaNNumber()NaNNan

所以做它sn2 = ...,它会没事的。

(请注意,作为一般规则,最好不要使用与元素 ID 相同的变量名,因为这样您就不会意外地得到这种“奇怪”的行为。)

工作演示:http: //jsbin.com/ivobew/1/edit

于 2013-06-20T21:32:09.920 回答
0

变量名错误:

function subtract() {
        var sn1=document.getElementById("sn1").value;
        var sn1=document.getElementById("sn2").value;
        stotal = ( Number(sn1) - Number(sn2) );
        document.getElementById("sanswer").innerHTML=stotal;
    }

第二sn1应该是sn2

于 2013-06-20T21:37:09.077 回答