你的i定义错地方了
<HTML>
<HEAD>
<TITLE>Thank you</TITLE>
<script>
var i=1;
function effect()
{
var m=eval("level_"+i);
        eval("level_"+i+".style.color='red'");
i+=1;
if(i>10) i=1;
setTimeout('effect()',1000); 
}
</script>
</HEAD><BODY onload="effect()">
<script>
for(var j=1;j<=10;j++)
  document.write("<h3 id=level_"+j+">nothing can baffles me!!</h3>");
</script>
</BODY>

解决方案 »

  1.   

    <HTML>
    <HEAD>
    <TITLE>Thank you</TITLE>
    <script>
    function effect(i)
    {
    if (i == null ) i=1;
    var m=eval("level_"+i);
    m.style.color="red";
    if(i++ < 10)  setTimeout("effect("+i+")",1000);
    }
    </script>
    </HEAD><BODY onload="effect()">
    <script>
    for(var j=1;j<=10;j++)
      document.write("<h3 id=level_"+j+">nothing can baffles me!!</h3>");
    </script>
    </BODY>m是你自己定义的局部变量,不能通过document.all.m来访问的。
      

  2.   

    呵呵,xg_delayth的做法是把i定义为全局变量,我的做法是把i作为参数,让它保持是局部变量。
      

  3.   

    to emu(ston) :你也是成天泡在这里的老鸟!
      

  4.   

    是不是这样
    <HTML>
    <HEAD>
    <TITLE>Thank you</TITLE>
    <script>
    var i=1;
    function effect()
    {
            eval("level_"+i+".style.color='red'");
            if (i!=1)
              eval("level_"+(i-1)+".style.color='black'");
            else
              eval("level_"+10+".style.color='black'")
    i+=1;
    if(i>10) i=1;
    setTimeout('effect()',1000); 
    }
    </script>
    </HEAD><BODY onload="effect()">
    <script>
    for(var j=1;j<=10;j++)
      document.write("<h3 id=level_"+j+">nothing can baffles me!!</h3>");
    </script>
    </BODY>