<body>
  <a id="f" style="margin-left:10px;border:1px solid;zoom:1;">我们都是好孩子</a>
  <script type="text/javascript">
function mousemove(  ){
e=window.event;
x=e.clientX;
y=e.clientY;
  var f=document.getElementById("f"); // 改成f=document.getElementById("f")也即将“var”去掉就会出错 
f.style.marginLeft=x+"px";
f.style.marginTop=y+"px";
}
document.onmousemove=mousemove;
  </script>
 </body>

解决方案 »

  1.   

    加var是声明的var变量f并赋值给document.getElementById("f");
    如果去掉的话没有声明是会报错的。
      

  2.   

    f和id重名,IE里可以直接引用id=f的对象,没有声明f的话,就直接以用到<a>DOM了<body>
      <a id="ff" style="margin-left:10px;border:1px solid;zoom:1;">我们都是好孩子</a>
      <script type="text/javascript"> 
    function mousemove( ){
    e=window.event;
    x=e.clientX;
    y=e.clientY;
    f=document.getElementById("ff");
    f.style.marginLeft=x+"px"; 
    f.style.marginTop=y+"px"; 
    }
    document.onmousemove=mousemove;
      </script>
     </body>
      

  3.   

    正解。IE特殊可以直接通过ID代表对象
      

  4.   

    回三楼f=document.getElementById("f");不加var,id=f可直接取到对象,那这里后面document.getElementById("f")也是取到id=f的对象,后者覆盖到前者,f仍然可以取到id=f的对象呀?为何不可?
      

  5.   

    相当于:
    document.getElementById("f") = document.getElementById("f");
    这样可以的话就也就可以了,但实际上是不行的.
      

  6.   

    3=3
    它还是3,
    a=a
    它也还是a
    为何这里
      

  7.   


    document.getElementById("f")是个返回值
    不能赋值。