js延时函数setTimeout值执行一次。为什么?

代码是:-------------------<scriptlanguage=javascript>temp()functiontemp(){document.write... 代码是:
-------------------
<script language=javascript>
temp()
function temp()
{
document.writeln("<hr>");
setTimeout("temp()",2000);
}
</script>

-----------------------
我要的效果是一直执行下去,每2秒输出一条线,可这个代码只输出1行就不执行下去了?为什么啊,你们可以把代码另存为HTML执行看一下,找高手帮我解答呀!!!才几行的代码,大家帮忙想想辙,在线急等!
------------------请你们把你们改的代码自己执行一下,没有错误再贴出来,别自己还没执行就.......
展开
 我来答
570851835
推荐于2017-10-09 · TA获得超过7892个赞
知道大有可为答主
回答量:2343
采纳率:0%
帮助的人:2273万
展开全部
先说下document.write的作用.document.write()的作用是把整个html文本的清空,再输出内容.所以,每隔两秒,html文本就被清空一次,再输出一个平行线.
基本同意楼上举人的代码.不过,还有另一种写法.如下:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<body>
<script language=javascript>
temp()
function temp()
{
var hr=document.createElement("hr");
document.getElementsByTagName("body")[0].appendChild(hr);
setTimeout("temp()",2000);
}
</script>
</body>
</html>
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
alz8888
2009-02-27 · 超过45用户采纳过TA的回答
知道小有建树答主
回答量:278
采纳率:0%
帮助的人:148万
展开全部
setTimeout本身是没有问题的,只是document.writeln看不出来效果.每两秒钟函数执行一次,但并没有实现累加,所以看不到效果.你用我下面的这个试试就可以了.

<div id="hr"></div>
<script language=javascript>
function temp()
{
var hr=document.getElementById("hr")
hr.innerHTML+="<hr />";
setTimeout("temp()", 1000);
}
temp()
</script>

参考资料: http://www.zmr8.com

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
loveandkissyou
2009-02-26 · TA获得超过2297个赞
知道大有可为答主
回答量:2332
采纳率:0%
帮助的人:2507万
展开全部
<script language=javascript>
function temp()
{
document.writeln("<hr>");
}
setTimeout("temp()",2000);
</script>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式