2017-10-09 169 views
0

我想在代码中多次附加一个现有的div(var父)到一个新的div。这是我的代码。它将现有的div附加到最后创建的div。帮帮我。appendChild不工作for循环

var result = JSON.parse(xhr.responseText); 
var rowCount = result.length; 
var parent = document.getElementById("post-feed"); 
for(i = 0; i < rowCount; i++){ 
    var newdiv = document.createElement("div"); 
    newdiv.id = "post-id-"+result[i].postid; 
    newdiv.className = "row"; 
    newdiv.appendChild(parent); 
    document.getElementById("feed").appendChild(newdiv); 
    document.getElementById("post-msg").innerHTML = result[i].message; 
    var image = result[i].image; 
    if(image != null){ 
     document.getElementById("image").src = "uploads/"+image; 
    } 
+3

当然好。您正在迭代地移动“父”,直到循环结束时,它结束于它的休息位置,它被追加到最后的元素。听起来就像你试图克隆,因为你目前的目标没有其他意义。 – Utkanos

+1

等待,您想要将父项追加到这些新元素中?如果是,那么在多个位置不可能有一个元素,因此您需要克隆它。如果新元素应该在父元素中,而不是逻辑切换。 – epascarello

+0

克隆没有什么帮助,因为它不克隆父div的子div。 –

回答

0

一个元素不能存在于多个位置,因此如果您想重复使用元素的标记,则可以使用cloneNode来克隆它。

document.getElementById("feed").appendChild(newdiv.cloneNode(true)); 
+0

父母的子div会自动被克隆吗?我试过克隆,但它不克隆孩子的div。 –

+0

克隆工作正常。我之前正在使用cloneNode()来创建问题。 –

0

看起来你已经在第8行触发了你的孩子和父母。我想你想说parent.appendChild(newDiv);

+0

我想要新的div作为父div的父级 –

+0

这里有一个想法。如果您已经将父div附加到新div,则可能会在下一次循环运行时遇到错误,因为父div已经是另一个div的子级。 –

+0

我打电话给它的父母是唯一的ID。所以它不会产生任何问题。 –