为什么不可以如下写????<script>
var uInner = document.getElementById("user").innerHTML;
        uInner  = "<font color='gray'>请输入用户名</font>";
</script>
为什么必须这么写????
<script>
var uEle = document.getElementById("user");
        uEle.innerHTML  = "<font color='gray'>请输入用户名</font>";
</script>

解决方案 »

  1.   

    可以写成:document.getElementById("user").innerHTML  = "<font color='gray'>请输入用户名</font>";
      

  2.   

    var uInner = document.getElementById("user").innerHTML执行之后将变量ulnner设置为字符串了,而var uInner = document.getElementById("user");之后ulnner则是一个对象
      

  3.   

    var uInner = document.getElementById("user").innerHTML;
    innerHTML 的值是字符串,uInner赋值的就是这个字符串,在赋值之后uInner与user元素就没有任何关联了。
    重新对uInner赋值,只会影响uInner变量本身,不会影响user元素。而 var uEle = document.getElementById('user');
    这样uEle赋值的是这个user元素的引用地址,
    uEle.innerHTML 的意思是先获取变量中存放的地址所指向的元素,再对这个元素的innerHTML属性赋值。
      

  4.   

    var uInner = document.getElementById("user").innerHTML执行之后将变量ulnner设置为字符串了,而var uInner = document.getElementById("user");之后ulnner则是一个对象
      

  5.   

    那为什么可以这么写?
    <script>
    var uVal = document.getElementById("user").value;
          uVal  = "haha";
    </script>
      

  6.   

    那为什么可以这么写?
    <script>
    var uVal = document.getElementById("user").value;
          uVal  = "haha";
    </script>
    不对啊。这样不会改变user元素的值