簡體   English   中英

用Java遞歸創建表

[英]Recursively creating tables in Javascript

我剛剛開始創建一些創建帶有x行的表的東西,您可以在行中放入任意多列。 每當我嘗試運行它時,它只會創建一個單元。 我該如何解決?

 var xio = parseInt(prompt("How many weighted areas are in this subject?")) for (i = 5; xio > 0; xio--) { var table = document.getElementById("myTable"); var row = table.insertRow(0); var cell1 = row.insertCell(0); cell1.innerHTML = "NEW CELL1"; var firstRow = document.getElementById("myTable").rows[xio]; var x = firstRow.insertCell(0); x.innerHTML = "New cell"; } 
 <table id="myTable"></table> 

您可以使用以下功能簡單地創建表

function makeTableHTML(myArray)
 { 
    var result = "<table border=1>"; 
    for(var i=0; i<myArray.length; i++) {
     result += "<tr>"; 
    for(var j=0; j<myArray[i].length; j++){ 
    result += "<td>"+myArray[i][j]+"</td>";
     } 
    result += "</tr>";
     } 
    result += "</table>"; 
    return result; 
    }

在您的代碼中,您嘗試選擇table.rows[xio]但如果xio === 5 ,則行號5尚不存在(因為它是迭代1),因此崩潰。

反之亦然。 與其通過減小xio來循環,不如通過增大i來循環。

 var xio = parseInt(prompt("How many weighted areas are in this subject?")), table = document.getElementById("myTable"); for (i = 0; i < xio; i++) { var row = table.insertRow(0), cell1 = row.insertCell(0); cell1.innerHTML = "NEW CELL1"; } 
 <table id="myTable"></table> 

沒有第二次輸入的提示,因此即使您的其余代碼正常(不是),也只能有一個單元格。 至於單元格/列,您需要在創建行的循環內的一個循環中創建它們。 請注意演示中循環語法的方式。

 var rQty = parseInt(prompt("Number of Rows"), 10); var cQty = parseInt(prompt("Number of Columns"), 10); var table = document.getElementById("xTable"); for (let i = 0; i < rQty; i++) { var row = table.insertRow(); for (let j = 0; j < cQty; j++) { var cell = row.insertCell(); cell.textContent = "NEW CELL"; } } 
 td { border: 2px ridge #333; text-align: center; } 
 <table id="xTable"></table> 

 var rQty = parseInt(prompt("Number of Rows"), 10); var cQty = parseInt(prompt("Number of Columns"), 10); var table = document.getElementById("xTable"); for (let i = 0; i < rQty; i++) { var row = table.insertRow(); for (let j = 0; j < cQty; j++) { var cell = row.insertCell(); cell.textContent = "NEW CELL"; } } 
 td { border: 2px ridge #333; text-align: center; } 
 <table id="xTable"></table> 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM