<html xmlns="http://www.w3.org/1999/xhtml"> <head> </head> <body> <div id="tc"><img src="images/2.jpg"/></div> <div id="gc" onclick="test()"><img src="images/1-1.bmp"/></div> </body> </html> <script type="text/javascript"> var closeObj=document.getElementById("gc"); var floatObj=document.getElementById("gc"); function test(){ alert(closeObj); alert(floatObj); } </script>
[解决办法] 确实是从上到下,顺序执行的。 var closeObj=document.getElementById("gc"); var floatObj=document.getElementById("gc");
getElementById 时,html 还没有加载,所以获取不到。
document.getElementById 代码放 window.onload 中
或者放到,所有html 代码后面 [解决办法]
... //当代码运行到下面这两行的时候,只会从这两行上面寻找id为gc的元素,但是上面只有html,head,script三个标签而已,并不存在这样的元素,所以取得默认值null并赋给closeObj floatObj。 var closeObj=document.getElementById("gc"); var floatObj=document.getElementById("gc"); ...
<html xmlns="http://www.w3.org/1999/xhtml"> <head> </head> <body> <div id="tc"><img src="images/2.jpg"/></div> <div id="gc" onclick="test()"><img src="images/1-1.bmp"/></div> </body> </html> <script type="text/javascript"> var closeObj=document.getElementById("gc"); var floatObj=document.getElementById("gc"); function test(){ alert(closeObj); alert(floatObj); } </script>
如果代码是一行行加载的话那么下面这段代码为什么第一个S是undefined呢?
<script type="text/javascript"> var s="1"; function show1() { //相当于: var s; document.write(s+"<br>"); s = "3"; // var s="3"; document.write(s+"<br>");