Javascript js中的交换变量

Javascript js中的交换变量,javascript,html,Javascript,Html,我想使用javascript交换2个变量,下面是我的代码: <html> <head> <script type="text/javascript"> function a(){ var in1 = document.getElementById("i1").value; var in2 = document.getElementById("i2

我想使用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>

函数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;
}




但是当我运行这个函数时,我得到的是值1和10,而不是1和2。

简单地使用,为什么要把事情复杂化呢

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

简单的使用,为什么要把事情复杂化

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


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

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

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

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

您需要将它们解析为如下数字:

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

您需要将它们解析为如下数字:

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

这两个变量中的值都是字符串类型,而不是整数。要执行数字操作,首先需要将字符串值转换为整数:


var in1=parseInt(document.getElementById(“i1”).value
var in2=parseInt(document.getElementById(“i2”).value


只要用上面的代码替换你的代码,它就会工作得很好

两个变量中的值都是字符串类型而不是整数。要执行数字操作,首先需要将字符串值转换为整数:


var in1=parseInt(document.getElementById(“i1”).value
var in2=parseInt(document.getElementById(“i2”).value


只要用上面的代码替换你的代码,它就会工作得很好

只需将其转换为
Number()
:只需将其转换为
Number()
:OP实际上试图在不使用第三个变量的情况下进行交换,我猜数字转换是其代码的问题。OP实际上试图在不使用第三个变量的情况下进行交换,我猜数字转换是其代码的问题。当然,这种方式更好,当然,这种方式更好,但我也想用这种交换方式进行教育。