JavaScript脚本改变位置后就报错了

来源:百度知道 编辑:UC知道 时间:2024/05/27 19:28:07
<HTML><HEAD><TITLE> </TITLE>
<style type="text/css">
.dis {DISPLAY: block}
.undis {DISPLAY: none}
</style>
</HEAD>
<BODY>
<DIV id=NewsTop>
<DIV id=Menu>
<P class=normal>美食</P>
<P class=normal>旅游</P>
</DIV>
<DIV id=content>
<SPAN>
aa
</SPAN>
<SPAN>
bb
</SPAN>
</DIV>
<SCRIPT>
var menu=document.getElementById('Menu').getElementsByTagName('p');
var Contents=document.getElementById('content').getElementsByTagName('span');
var len=menu.length;
var flag=0;//修改默认值
for(i=0;i<len;i++)
{
menu[i].value = i;

因为你的脚本是直接执行的 而不是onload进行调用执行的
你放在head里 这样你的页面一行一行装载的时候 先装载了js的脚本
却还没有开始装载body里的html内容
所以document.getElementById这块就会出现找不到元素
后面肯定会报一个对象不存在的错误了

解决方案封装成方法 用onload调用

本来就不能乱放。有些没关系,有些就是有影响。
特别是动态添加事件的,有head里的写法和在body里的写法是不一样的。具体怎么写我忘了,得回去查下资料