setTimeout()总是提示缺少对象,请高手帮忙

问候你… 2012-08-12 03:24:17
下面是我打的代码 浏览器总是提示缺少对象 不知什么原因 请高手指教 如果不用setTimeout() 在外面用setInterval()就是对的

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>递归调用</title>
</head>
<script>
fc();
function fc(){
var aa=document.getElementById("bb");
var red=Math.random()*255;
var green=Math.random()*255;
var blue=Math.random()*255;
aa.style.color="rgb("+red+","+green+","+blue+")";
setTimeout("fc()",500);
}

</script>
<body>

<div id="bb">JS将会随机改变这个文字的颜色</div>

</body>
</html>
...全文
219 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
问候你… 2012-08-28
  • 打赏
  • 举报
回复
多谢 各位大虾 这次终于明白了window.onload的意思了 受益匪浅啊!
V-Far 2012-08-13
  • 打赏
  • 举报
回复
孟子正解。js都执行了。其实div还没展示出来。所以aa是null
hch126163 2012-08-13
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

fc();
改成
window.onload = fc;

确保对象创建成功再调用
[/Quote]
++

或者把script 标签放body结束标签下面

是第一个 fc() 错误,不是setTimeout 的问题
这样的的问题,调试一下,就明白了
  • 打赏
  • 举报
回复
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>递归调用</title>
</head>
<script>

function fc() {
var aa = document.getElementById("bb");
var red = Math.random() * 255;
var green = Math.random() * 255;
var blue = Math.random() * 255;
aa.style.color = "rgb(" + red + "," + green + "," + blue + ")";
setInterval("fc()", 500);
}

</script>
<body onload="fc();">

<div id="bb">JS将会随机改变这个文字的颜色</div>

</body>
</html>
静缘 2012-08-13
  • 打赏
  • 举报
回复
页面加载完成后再调用函数fc(); 否则var aa=document.getElementById("bb");这个元素不存在
世外之人 2012-08-13
  • 打赏
  • 举报
回复
fc后面的()去掉,setTimeOut里只要写函数名就行了
traveller 2012-08-12
  • 打赏
  • 举报
回复
在标签<body>中加上onload事件 调用fc()函数
孟子E章 2012-08-12
  • 打赏
  • 举报
回复
fc();
改成
window.onload = fc;

确保对象创建成功再调用

87,992

社区成员

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

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