我将tr
s附加到字符串中的表中。我使用以下代码使用innerHTML编写整个表,然后我可以使用标准DOM将新位传输到现有表。
var div = document.createElement("div");
div.innerHTML = "<table><tbody>" + string + "</tbody></table>";
使用以下简单的Javascript很好,直到我们看看CSS样式。这会导致每个部分处于不同的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]);
}
答案 0 :(得分:3)
childNodes是一个活动节点集,因此当您删除它时,其他元素会向下移动索引。所以你最终得到了每一行。
while (tableBody.childNodes.length) {
appendToTable.appendChild(tableBody.childNodes[0]);
}