2 回答

TA貢獻1880條經驗 獲得超4個贊
您無法將片段添加到innerHTML. 當您這樣做時tablebody.innerHTML+="<tr>";,瀏覽器會自動</tr>在后面添加一個結束語。
您需要將字符串構建到它自己的變量中,然后tablebody.innerHTML = yourTableVar;再執行。
var tableData = '';
for (var i = 0; i < list.length; i++) {
tableData += "<tr>";
for (var j = 0; j < list[i].length; j++) {
tableData += "<td>" + list[i][j] + "</td>";
}
tableData += "</tr>"
}
tablebody.innerHTML = tableData;
另外,您的 HTML<thead>不正確。您需要有一個<tr>作為標題行和<th>帶有列標題的標簽:
<thead id="tablehead">
<tr>
<th>List[0]</th>
<th>List[1]</th>
<th>List[2]</th>
</tr>
</thead>

TA貢獻1831條經驗 獲得超4個贊
const tablebody = document.querySelector('table#table tbody')
, list =
[ [ 12, 4, 22 ]
, [ 11, 32, 7 ]
, [ 9, 16, 13 ]
]
for (let row of list)
{
let nRow = tablebody.insertRow()
for( let vCol of row)
{
nRow.insertCell().textContent = vCol
}
}
body {
background-color : black;
color : white;
}
table {
border-collapse : collapse;
}
table td {
padding : 5px;
width : 20px;
height : 20px;
border : 1px solid green;
text-align : center;
}
table thead {
background-color : darkblue;
}
<table id="table">
<thead>
<tr>
<td>List[0]</td>
<td>List[1]</td>
<td>List[2]</td>
</tr>
</thead>
<tbody>
</tbody>
</table>
添加回答
舉報