Javascript for循环 - 循环遍历行以添加到表

时间:2013-03-05 03:28:17

标签: javascript dom

我将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]);
}

1 个答案:

答案 0 :(得分:3)

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

while (tableBody.childNodes.length) {
    appendToTable.appendChild(tableBody.childNodes[0]);
}