<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script type="text/javascript">
var closeObj=document.getElementById("gc");
var floatObj=document.getElementById("gc");
function test(){
alert(closeObj);
alert(floatObj);
}
</script>
</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>上面这段代码,为什么当我单击下面的div的时候,会弹出两个null ,应该是返回两个div元素才对呀,javascript的代码到底是按什么顺序执行的?难道不是一行一行的解释下去的吗?哪位大神能够仔细的说清楚这个问题啊?
解决方案 »
- javascript发送二进制数据
- webwork中,打印预览框架frame中一个框架中的内容,怎么实现?
- 谁能帮我解释一下
- 怎样在<TD></TD>里加背景图片?
- 用js给input输入框赋值,并不触发input输入框的onchange 事件?
- 最近想看jquery源码,打开之后就是这鸟样
- 为什么不执行<a href="javascript:" onClick="location.href='http://pgcn.net'">盘古</a>
- 如何用图片作一个提交按钮和检查用户按钮
- 请问调用函数时,如何强制退出整个js的执行!急呀!
- javascript中document对象,alert方法,confirm方法
- ie10下的“SCRIPT5007: 无法获取未定义或 null 引用的属性“value” ”错误,求解释!!
- 菜鸟求大神指点~~~
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script type="text/javascript">
//正因为是一行一行的解释下去的,
你在这里getElementById("gc")定义closeObj和floatObj是错误的:
因为此时<div id="gc"还没加载呢!
var closeObj=document.getElementById("gc");
var floatObj=document.getElementById("gc");
function test(){
alert(closeObj);
alert(floatObj);
}
</script>
</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>
你可以把上面的JS脚本放到后面<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">
window.onload=function(){
var closeObj=document.getElementById("gc");
var floatObj=document.getElementById("gc");function test(){
alert(closeObj);
alert(floatObj);
}
</script>也可以在页面加载完成的函数里定义控件变量<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script type="text/javascript">
window.onload=function(){
closeObj=document.getElementById("gc");//注意:此处定义不要用var,要定义为全局变量
floatObj=document.getElementById("gc");
}
function test(){
alert(closeObj);
alert(floatObj);
}
</script>
</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>
<head>
</head>
<body>
<div id="tc"><img src="img/1.jpg"/></div>
<div id="gc" onclick="test()"><img src="img/2.jpg"/></div>
<script type="text/javascript">
var closeObj=document.getElementById("tc");
var floatObj=document.getElementById("gc");
function test(){
alert(closeObj);
alert(floatObj);
}
</script>
</body>
</html>
<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 s="1";
function show1() {
document.write(s+"<br>");
var s="3";
document.write(s+"<br>");
}
show1();
</script>
var s="1";
function show1() {
document.write(s+"<br>");
//这样试试,自己思考一下:
//var s="3";
s="3";
document.write(s+"<br>");
}
show1();
</script>
var closeObj=document.getElementById("gc");
var floatObj=document.getElementById("gc");getElementById 时,html 还没有加载,所以获取不到。document.getElementById 代码放 window.onload 中或者放到,所有html 代码后面
var s="1";
function show1() {
document.write(s+"<br>");
//这样试试,自己思考一下:
//var s="3";
s="3";
document.write(s+"<br>");
}
show1();
</script>
...
//当代码运行到下面这两行的时候,只会从这两行上面寻找id为gc的元素,但是上面只有html,head,script三个标签而已,并不存在这样的元素,所以取得默认值null并赋给closeObj floatObj。
var closeObj=document.getElementById("gc");
var floatObj=document.getElementById("gc");
...
var s="1";
function show1() {
document.write(s+"<br>");
var s="3";
document.write(s+"<br>");
}
show1();
</script>
javascript 预编译和处理的问题,var 申明的变量进行了预编译,赋值操作未执行,所以先输出 undefined
var s="1";
function show1() {
//相当于:
var s;
document.write(s+"<br>");
s = "3";
// var s="3";
document.write(s+"<br>");
}
show1();
</script>
javascript 预编译和处理的问题,var 申明的变量进行了预编译,赋值操作未执行,所以先输出 undefined
对的