<html>
 <head>
  <title>Example 1.3 Hello World!</title>
 </head> <body>
  <form>
  </form>  <form>
  </form>  <p id="1" onmouseover="window.status='这是 JavaScript 测试脚本!!!'" onmouseout="window.status=''">这是第1个P元素</p>
  <p name="title_two">这是第2个P元素</p>
  <p name="title_three" onclick="color_red()">这是第3个P元素</p>
  <p>这是第4个P元素</p>
  <p>这是第5个P元素</p>
  <p>这是第6个P元素</p>
  <p>这是第7个P元素</p>
  <p>这是第8个P元素</p>  <script type="text/JavaScript">
   <!--
    document.write(document.all.length + "<br />");  // 这行语句运行得到的值为16,用这个值作为for循环的最大值    for(var i = 0; i <= document.all.length; i++)  // 用for循环后将浏览器憋死
     {
      document.write(i + " = " + document.all[i].name + "<br />");
     }
   //-->
  </script>
 </body>
</html>
在上面的代码中用document.all.length值为循环的最终值,实际运行时该值为16,但用到for循环中实际运行时循环步进变量i的值却到了6889,且憋死了浏览器。
请知道的帮助找一下问题所在。谢谢了。

解决方案 »

  1.   

      for(var i = 0; i <= document.all.length; i++) // 用for循环后将浏览器憋死
      {
     //每循环一次,就往document里写东西,所以document里的东西当然就越来越多,所以document.all.length就不断增加
      document.write(i + " = " + document.all[i].name + "<br />");  
      }
      

  2.   

    楼主你的代码在ie下是20 ,之后就会死循环不是16,而在ff下是直接就报错的
      

  3.   

    大哥当然是死循环了。。你的document.write 一直在生产。。“供大于求”了
      

  4.   

    可以改成这样<html>
     <head>
      <title>Example 1.3 Hello World!</title>
     </head> <body>
      <form>
      </form>  <form>
      </form>  <p id="1" onmouseover="window.status='这是 JavaScript 测试脚本!!!'" onmouseout="window.status=''">这是第1个P元素</p>
      <p name="title_two">这是第2个P元素</p>
      <p name="title_three" onclick="color_red()">这是第3个P元素</p>
      <p>这是第4个P元素</p>
      <p>这是第5个P元素</p>
      <p>这是第6个P元素</p>
      <p>这是第7个P元素</p>
      <p>这是第8个P元素</p>  <script type="text/JavaScript">
      <!--
      alert(document.all.length); 
      var len = document.all.length;//将document.all.length赋值给变量
      for(var i = 0; i <= len; i++) 
      {
        document.write(i + " = " + document.all[i].name + "<br />");
      }
      //-->
      </script>
     </body>
    </html>
      

  5.   

    <br />也是all中间的一个啊
      

  6.   

    lz你写的等于是 var all=10;
    for(var i=0;i<all;i++)
    {
    all++
    }