我遇到了以下问题-我很难动态创建新的TR行,然后将其作为新的表(TD(行插入数据。
完整的问题如下;
创建一个脚本,插入一个值为March和£580的新行,作为下面HTML表的最后一个子项。
<table id=”takings”>
<tr>
<td>January</td>
<td>£100</td>
</tr>
<tr>
<td>February</td>
<td>£300</td>
</tr>
// insert here
</table>
我的尝试或想法是先创建TR,然后为文本数组中的每个项目在新创建的TR中添加一个TD。然而,这似乎并没有创建任何东西。
我的JS如下;
function insertNode(newNodeTypeTD, newNodeTypeTR, newNodeTextArray, element) {
let parentElement = document.getElementById(element);
let newTR = document.createElement(newNodeTypeTR);
for (let i = 0; newNodeTextArray.length; i++) {
let newText = document.createTextNode(newNodeTextArray);
newTR.appendChild(newText);
parentElement.insertBefore(newTR, parentElement.children[i]);
}
}
window.onload = function() {
insertNode("td", "tr", ["March", "£580"], "takings")
}
注意这一行:for (let i = 0; newNodeTextArray.length; i++) {
newNodeTextArray.length
等于或大于1,因此此条件总是返回true
。
你可能想做的是
for (let i = 0; i < newNodeTextArray.length; i++) {