2017-10-09 171 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。所以它不會產生任何問題。 –