<script type="text/javascript">
   window.onload=initAll();
   var usedNums=new Array(16);
   function initAll()
   {
    if(document.getElementById)
    {
     for(var i=0;i<5;i++)
 {
   setSquare(i);
 }
    }
else
  alert("dfdf");
   }
   function setSquare(thisSquare)
   {
      var currSquare="square"+thisSquare;
  var newNum=getNewNum()+1;   if(!usedNums[newNum])  //问题所在
  {
    usedNums[newNum]=true;
document.getElementById(currSquare).innerHTML=newNum;
  }   }
   function getNewNum()
   {
    return Math.floor(Math.random()*15);
   }  
 </script>
 <body>
 <table>
  <tr>
   <th id="square0">&nbsp</th>
   <th id="square1">&nbsp</th>
   <th id="square2">&nbsp</th>
   <th id="square3">&nbsp</th>
   <th id="square4">&nbsp</th>
  </tr>
  
 </table>
  
 </body>
目的是想在表格里面显示1到15的随机数,但如果那数已经出现了,那么下一个就不能出现(即所在的列那格子为空),运行上面的代码,总是有问题。希望大家能帮帮忙

解决方案 »

  1.   

    先调用initAll()  再声明 usedNums  不出错就奇怪了
      

  2.   

       window.onload=initAll;//你这地方原本有个括号,拿掉
       var usedNums=new Array(16);
       function initAll()
       {
        if(document.getElementById)
        {
         for(var i=0;i<5;i++)
         {
           setSquare(i);
         }
        }
        else
          alert("dfdf");
       }
       function setSquare(thisSquare)
       {
          var currSquare="square"+thisSquare;
          var newNum=getNewNum()+1;      if(!usedNums[newNum])  //问题所在
          {
            usedNums[newNum]=true;
            document.getElementById(currSquare).innerHTML=newNum;
          }   }
       function getNewNum()
       {
        return Math.floor(Math.random()*15);
       }
      

  3.   

    细节啊细节
    window.onload=initAll 不能有括号的再加上一些文献给你了解下
    http://www.cnblogs.com/khan/articles/1995833.html 
      

  4.   

    window.onload=initAll();//错误
    window.onload=initAll; //正确