为什么document.getElementById("kw") alert是null 呢??

用户昵称不能为空 2009-12-23 10:17:02
<script language="javascript" type="text/javascript">
var kw=document.getElementById("kw");
alert(kw);
</script>
<form id="form1" name="form1" method="post" action="">
<label>
<input name="kw" type="text" id="kw" />
</label>
</form>

真的是好奇怪啊,为什么是弹出的是null啊而不是对象。
那如何才可以让弹出的是他的kw的对象,因为后面很对函数要用,能不能像变量那样全局啊?
...全文
175 5 打赏 收藏 举报
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
Objector 2009-12-23
  • 打赏
  • 举报
回复
因为在执行脚本的时候文档还没有加载完成,DOM树结构还完全,这时候document或者document.getElementById这些对象或方法都不存在,或者你获取的那个元素还未加载,所以会报错或者是NULL

[B]解决方法[/B]
1. 把脚本移到HTML文件的左后面
2. 在window.onload = function(){/*...*/}里写你的代码
千游 2009-12-23
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 virusfu 的回复:]
把var kw=document.getElementById("kw");alert(kw);
这句话放到 表单的下面 或者把这两句话放到一个函数里面去, 因为脚本根据网页的执行顺序从上到下一次执行,当执行到document.getElementById("kw");的时候还没有构建"kw"这个对象  所以为null
[/Quote]
D
jol_boy 2009-12-23
  • 打赏
  • 举报
回复
要注意顺序~
hyuk2460 2009-12-23
  • 打赏
  • 举报
回复
果真如此 受教
VirusFu 2009-12-23
  • 打赏
  • 举报
回复
把var kw=document.getElementById("kw");alert(kw);
这句话放到 表单的下面 或者把这两句话放到一个函数里面去, 因为脚本根据网页的执行顺序从上到下一次执行,当执行到document.getElementById("kw");的时候还没有构建"kw"这个对象 所以为null

发帖
JavaScript

8.7w+

社区成员

Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
帖子事件
创建了帖子
2009-12-23 10:17
社区公告
暂无公告