注册 登录
编程论坛 JavaScript论坛

刚注册,只有20分!定时循环问题请教大家!谢谢!

ld081055 发布于 2010-10-30 09:55, 571 次点击
如下是本人刚写的一段代码,想让node_run这个数组定时循环输出数值,按照变量设置应该是显示从4到0的变化,但是不知道为什么,输出值到3就不变了,请大家帮忙看看,我是新手,谢谢指教!
<html>
<body>

<script type="text/javascript">
var i,id = 20;
var node_all = new Array(4);
var node_comp = new Array(4);
var node_run = new Array(4);

for(i=0; i<4; i++)
{
    node_all[i] = parseInt(id/4);
    node_run[i] = node_all[i];
    node_comp[i] = 0;
}

increase();
function increase()
{
    for(i=0; i<4; i++)
    {
        if(node_run[i] > 0)
        {
            node_run[i]--;
            node_comp[i]++;
        }
        document.write(node_run[i]);
        document.write("<br>");
    }
   setTimeout("increase()",1000);
}
</script>
</body>
</html>
4 回复
#2
ld0810552010-10-30 09:57
用了其他的函数如setInterval,也不好使,恳请指教!
#3
ld0810552010-10-30 10:00
我知道这个代码有问题,死循环,但是至少应该显示到0啊!
#4
foktime2010-11-01 09:35
程序代码:
<html>
<body>
<div id="div"></div>
<script type="text/javascript">
var i,id = 20;
var node_all = new Array(4);
var node_comp = new Array(4);
var node_run = new Array(4);

for(i=0; i<4; i++)
{
    node_all[i] = parseInt(id/4);
    node_run[i] = node_all[i];
    node_comp[i] = 0;
}

increase();
function increase()
{
    var s="";
    for(i=0; i<4; i++)
    {
        if(node_run[i] > 0)
        {
            node_run[i]--;
            node_comp[i]++;
        }
        s += node_run[i]+"<br>";
      
    }
    document.getElementById("div").innerHTML = s;
   setTimeout("increase()",1000);
}
</script>
</body>
</html>
#5
jackieli20742010-11-01 10:44
学习
1