2017-03-14 22 views
0

我需要把6个随机生成的数字在一个HTML表,我想知道什么是最好的解决办法,这是我的JS代码:如何将随机生成的数字放入表格中?

function GenerateNumber(){ 

var sResultat = ""; 
var iCompteur; 
for(iCompteur=0;iCompteur<=6;iCompteur++) 
    { 
    sResultat = Math.round(Math.random()* 18) + 1; 
    } 
} 

会称他们与工作的addEventListener?每当我加载页面时,我都需要让它出现,当然,如果我重新加载页面,这些数字会有所不同。

这里是我的HTML代码:(我把号码暂时来测试我的代码,并显示出在那里我希望他们出现)

<div class="table"> 
       <table> 

        <tr> 
         <th>FORce</th> 
         <th>DEXtérité</th> 
         <th>CONstitution</th> 
         <th>INTelligence</th> 
         <th>SAGesse</th> 
         <th>CHArisme</th> 
        </tr> 

        <tr> 
         <td class = "FOR"> 
         5 
         </td> 

         <td class = "DEX"> 
         4 
         </td> 

         <td class= "CON"> 
         4 
         </td> 

         <td class ="INT"> 
         4 
         </td> 

         <td class="SAG"> 
         4 
         </td> 

         <td class="CHA"> 
         3 
         </td> 
        </tr> 


       </table> 

      </div> 

回答

1

function generateNumber() { 
 
    var sResultat 
 
    var cells = ["FOR", "DEX", "CON", "INT", "SAG", "CHA"] 
 
    cells.forEach(function(cell) { 
 
    sResultat = Math.round(Math.random() * 18) + 1; 
 
    document.getElementsByClassName(cell)[0].innerText = sResultat 
 
    }) 
 
} 
 

 
generateNumber()
<div class="table"> 
 
    <table> 
 

 
    <tr> 
 
     <th>FORce</th> 
 
     <th>DEXtérité</th> 
 
     <th>CONstitution</th> 
 
     <th>INTelligence</th> 
 
     <th>SAGesse</th> 
 
     <th>CHArisme</th> 
 
    </tr> 
 

 
    <tr> 
 
     <td class="FOR"> 
 
     </td> 
 

 
     <td class="DEX"> 
 
     </td> 
 

 
     <td class="CON"> 
 
     </td> 
 

 
     <td class="INT"> 
 
     </td> 
 

 
     <td class="SAG"> 
 
     </td> 
 

 
     <td class="CHA"> 
 
     </td> 
 
    </tr> 
 

 
    </table> 
 

 
</div>

0

function GenerateNumber(){ 
 
    var tds = document.querySelectorAll('.table td'); 
 
    
 
    return Array.prototype.forEach.call(tds, function(td){ 
 
     td.innerHTML = Math.round(Math.random()*18) + 1; 
 
    }); 
 
} 
 

 
window.onload = GenerateNumber;
<div class="table"> 
 
       <table> 
 

 
        <tr> 
 
         <th>FORce</th> 
 
         <th>DEXtérité</th> 
 
         <th>CONstitution</th> 
 
         <th>INTelligence</th> 
 
         <th>SAGesse</th> 
 
         <th>CHArisme</th> 
 
        </tr> 
 

 
        <tr> 
 
         <td class = "FOR"> 
 
         5 
 
         </td> 
 

 
         <td class = "DEX"> 
 
         4 
 
         </td> 
 

 
         <td class= "CON"> 
 
         4 
 
         </td> 
 

 
         <td class ="INT"> 
 
         4 
 
         </td> 
 

 
         <td class="SAG"> 
 
         4 
 
         </td> 
 

 
         <td class="CHA"> 
 
         3 
 
         </td> 
 
        </tr> 
 

 

 
       </table> 
 

 
      </div>

+1

1.'document.querySelectorAll('。t能够td')'就足够了(表中没有其他的'td'),2.为什么不只是'Array.prototype.forEach.call(tds,...)'? –

+0

@Jordan好点。相应地更新我的代码 –