在js中交换变量

时间:2013-11-19 15:59:48

标签: javascript html

我想通过使用javascript来交换2个变量,这是我的代码:

<html>
    <head>
        <script type="text/javascript">
            function a(){

                var in1 = document.getElementById("i1").value;
                var in2 =  document.getElementById("i2").value;

                in1=in1+in2;
                in2=in1-in2;
                in1=in1-in2;

                document.getElementById("o1").value=in1;
                document.getElementById("o2").value=in2;
            }
        </script>
    </head>
    <body>
        <input type=text id=i1><br>
        <input type=text id=i2><br>
        <input value=change type=button onclick="a();"><br>
        <input type=text id=o1><br>
        <input type=text id=o2>
    </body>
</html>

但是当我运行该功能时,我得到的值为1&amp; 10而不是1&amp; 2。

4 个答案:

答案 0 :(得分:3)

简单地使用,为什么会使事情变得复杂?

var a = in1;
in1=in2;
in2=a;

如果您想在不使用第三个变量的情况下进行交换 ,请将其转换为Number()

in1 = Number(in1);
in2 = Number(in2);

in1=in1+in2;

答案 1 :(得分:1)

如果要将值分配给其他ID,为什么要交换。

  document.getElementById("o1").value=document.getElementById("i2").value;
  document.getElementById("o2").value=document.getElementById("i1").value; 

答案 2 :(得分:1)

你需要将它们解析为这样的数字:

in1 = parseInt(in1);
in2 = parseInt(in2);

test here

答案 3 :(得分:1)

两个变量中的值都是 string 类型而不是 Integers 。要执行数值运算,我们需要先将字符串值转换为Integers ::

var in1 = parseInt(document.getElementById("i1").value);
var in2 = parseInt(document.getElementById("i2").value);

只需用上面的代码替换你的代码,它就可以正常工作!!