为什么这样赋值不可以?

来源:6-11 编程练习

GlaDoss

2016-04-17 17:34

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
<input id="txt1" type="text">
<input id="txt2" type="text" >
<input id="btn1" type="button" value="这只是一个按钮">
<script>
 var oTxt1=document.getElementById('txt1').value;
 var oTxt2=document.getElementById('txt2').value;
 var oBtn=document.getElementById('btn1');
 oBtn.onclick=function(){
 //如果说oTxt1相当于把txt1的值赋给了它,直接alert(oTxt1)也什么都得不到。
        oTxt1=oTxt2;
               alert(oTxt2);
 }

</script>
</body>
</html>

但是如果把上面的.value换到下面oTxt1.value=oTxt2.value就可以实现第一个框的值与第二个框相等

写回答 关注

2回答

  • Alexdon
    2016-04-17 20:00:51
    已采纳
    1. 当页面加载到oTxt1、oTxt2的声明位置时,此时此刻用户并未有任何输入所以txt1与txt2的值都是空的。

    2. oTxt1与oTxt2存储的是在页面加载时刻txt1,txt2中的值,这两个值之间的相互赋值并不能动态地影响txt1与txt2

    <script type="text/javascript">
     var oTxt1=document.getElementById('txt1').value;
     var oTxt2=document.getElementById('txt2').value;
     // 此处代码在页面加载后立即执行,所以oTxt1是空值
     alert(oTxt1);
     var oBtn=document.getElementById('btn1');
     oBtn.onclick=function(){
            alert(oTxt1);
            // 的确,因为oTxt1的值是在页面加载后,用户输入前被赋值的所以起一定是空的
            // 且oTxt1与oTx2之间的赋值并不会影响txt1,txt2
            oTxt1=oTxt2;
     }
    </script>

    2. 【如果把上面的.value换到下面oTxt1.value=oTxt2.value就可以实现第一个框的值与第二个框相等】此时oTxt1指向的是dom元素txt1,oTxt2指向的是dom元素txt2

    <script type="text/javascript">
     var oTxt1=document.getElementById('txt1');
     var oTxt2=document.getElementById('txt2');
     // 此处代码在页面加载后立即执行,此时oTxt1是DOM元素txt1,oTxt2是DOM元素txt2
     alert(oTxt1);
     var oBtn=document.getElementById('btn1');
     oBtn.onclick=function(){
            //此时点击按钮,如果用户已经输入了,则能完成期望功能
            // 如果用户什么都不输入与之前的表现一样都为空白
            alert(oTxt1.value);
            // 此处完成将影响txt1,txt2的值
            oTxt1.value=oTxt2.value;
     }
    </script>


    GlaDos...

    谢谢你

    2016-04-17 22:21:25

    共 1 条回复 >

  • 慕前端2813051
    2016-04-17 18:35:32

    不知道

JavaScript进阶篇

本课程从如何插入JS代码开始,带您进入网页动态交互世界

468190 学习 · 21891 问题

查看课程

相似问题