0

我正在将trs 从字符串附加到表中。我使用以下代码使用 innerHTML 编写整个表,然后我可以使用标准 DOM 将新位传输到现有表。

var div = document.createElement("div");
div.innerHTML = "<table><tbody>" + string + "</tbody></table>";

在我们查看 CSS 样式之前,使用以下简单的 Javascript 就可以了。这会导致每个部分位于不同的tbody. 这是不可接受的,因为 CSS 样式正在使用:nth-child(odd)

document.getElementById("left").appendChild(div.firstChild.tBodies[0]);

因此,我已将代码更改为此,但它只是将每隔一行添加到表中。我做错什么了?

var tableBody = div.firstChild.tBodies[0];
var appendToTable = document.getElementById("left").tBodies[0];

var totalnodes = tableBody.childNodes.length;

for (var thenodes = 0; thenodes < totalnodes; thenodes++) {
    appendToTable.appendChild(tableBody.childNodes[thenodes]);
}
4

1 回答 1

3

childNodes 是一个活动节点集,因此当您删除它时,其他元素会向下移动一个索引。所以你最终得到每隔一行。

while (tableBody.childNodes.length) {
    appendToTable.appendChild(tableBody.childNodes[0]);
}
于 2013-03-05T03:42:44.013 回答