<body>
<a id="f" style="margin-left:10px;border:1px solid;zoom:1;">我们都是好孩子</a>
<script type="text/javascript">
<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.οnmοusemοve=mousemove;</script>
</body>
(1)
ie下,id的值可以直接取到对象。如f.style.color="red"也可以生效,但有个前提条件,就是f前面没加var,如果加了var,那它就是个普通变量。
(2)
document.getElementById("f")不能再被赋值,因为它是去返回对象,它不同于基本类型,也不同于原生对象
所以f=document.getElementById("f")相当于document.getElementById("f")=document.getElementById("f"),而前者本身是个返回值,所以不能赋值,会发生错误。
所以var f=document.getElementById("f")是可以的,因为f前面有var,所以f就不能直接取到对象(仅限 ie这么做)
(3)最好m=document.getElementById("f"),id的值和返回赋值变量的名称不一致,就不会发生类似问题。