这个问题大家看看,来者有分!!!!!!

xierong2011 2012-03-26 01:45:31

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>HTML DOM创建元素本文</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<h2>下拉框</h2>
<div id="testDiv"></div>
</div>
<script type="text/javascript">
var select=document .createElement("select");
select.options[0] = new Option("加载项1", "value1");
select.options[1] = new Option("加载项2", "value2");
select.options[2] = new Option("加载项3", "value3");
select.options[3] = new Option("加载项4", "value4");
select.size = "4";
document.getElementById('testDiv').appendChild(select);
</script>
</form>
</body>
</html>

为什么换成下面的却有错误:

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>HTML DOM创建元素本文</title>
<script type="text/javascript">
var select=document .createElement("select");
select.options[0] = new Option("加载项1", "value1");
select.options[1] = new Option("加载项2", "value2");
select.options[2] = new Option("加载项3", "value3");
select.options[3] = new Option("加载项4", "value4");
select.size = "4";
document.getElementById('testDiv').appendChild(select);
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<h2>下拉框</h2>
<div id="testDiv"></div>
</div>
</form>
</body>
</html>

为什么放在head里面不能正常执行呢 高手给我详细讲讲 还有什么情况下javascript代码不能放在head里面? 谢谢啦
...全文
277 39 打赏 收藏 转发到动态 举报
写回复
用AI写文章
39 条回复
切换为时间正序
请发表友善的回复…
发表回复
xierong2011 2012-03-27
  • 打赏
  • 举报
回复
谢谢大家了 马上就结贴 还有木有人???????????????
beican_shijie 2012-03-27
  • 打赏
  • 举报
回复
不会的飘过~~听说有分我就来了~~
coolcat9527 2012-03-27
  • 打赏
  • 举报
回复
这是因为在这个html还没有加载完的时候js已经执行了
也就是说
document.getElementById('testDiv').appendChild(select);
在执行的时候
<div id="testDiv"></div> 还没有加载所以
document.getElementById('testDiv') == undefined
undefined后面在点方法肯定会报错。
icharme 2012-03-26
  • 打赏
  • 举报
回复
顺序问题
劼哥stone 2012-03-26
  • 打赏
  • 举报
回复
楼上的大牛们已经回答了,我也就来顶一下~
KeenWon 2012-03-26
  • 打赏
  • 举报
回复
就是加载顺序问题,如果放在head里

写在window.onload=function (){ //代码写这里 }
hellNo 2012-03-26
  • 打赏
  • 举报
回复
有分拿吗?
zfk198687 2012-03-26
  • 打赏
  • 举报
回复
java_age 2012-03-26
  • 打赏
  • 举报
回复
前面的说了,我来接点分。呵呵。
xuyanlu 2012-03-26
  • 打赏
  • 举报
回复
其实跟head是没有多大关系的,js是顺序下来的!而在那个id为testDiv之前,document.getElementById("testDiv");是得不到结果的!所以需要在div之后才能执行js脚本!或者用onload = “functionname()”在body里加载
nelson 2012-03-26
  • 打赏
  • 举报
回复
:-(
一秒L 2012-03-26
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 ethan_jnu 的回复:]

进来学习的。。。。
[/Quote]
+1
看看看灰机 2012-03-26
  • 打赏
  • 举报
回复
好吧来学习的
hp2008001 2012-03-26
  • 打赏
  • 举报
回复
楼主应该明白了吧,我是来接分的
zwzttlove 2012-03-26
  • 打赏
  • 举报
回复
跟我开始学的时候一样,呵呵 ,祝你进步
a597926661 2012-03-26
  • 打赏
  • 举报
回复
问题解决了 我是来接分的
zell419 2012-03-26
  • 打赏
  • 举报
回复
听说都有分 。
月经问题 。
伴老思源 2012-03-26
  • 打赏
  • 举报
回复
执行顺序是从上到下~
我爱小土豆 2012-03-26
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 hch126163 的回复:]

执行顺序是从上到下

养成习惯,代码写在onload 中
window.onload=function(){

};
[/Quote]
++是这样的,你把js代码放在上面的话,会导致执行的时候找不到的错误。。。。
Owenini 2012-03-26
  • 打赏
  • 举报
回复
顺序问题!!!!!!!!!!!!!!
加载更多回复(9)

87,907

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧