2010-11-03 57 views
0

我卻造成讓我在一個循環中增加幾個的childNodes一個DOM片段現有的HTML元素:的Javascript追加片段

fragment.appendChild(clone) 

我想利用這個片段,並用它來替換現有的HTML元素已經包含這些節點。

我可以使用

myContainer.appendChild(fragment) 

然而,這是在一個循環中也做了和片段被附加了太多的時間。 如何獲取片段,將其附加到myContainer中,並刪除myContainer的舊孩子。

謝謝。

回答

0

循環結束後,你不能追加碎片嗎?

至於刪除當前的子節點,你可以遍歷它們並使用removeChild函數,或者你可以將元素的innerHTML設置爲空字符串。如果在附加片段之前重置innerHTML,它應該沒問題。

myContainer.innerHTML = ""; 
myContainer.appendChild(fragment); 
1

你可能想:

while (myContainer.childNodes.length > 0) { 
    myContainer.removeChild(myContainer.childNodes[0]); 
} 

myContainer.appendChild(fragment); 
0

如果我理解正確的話,你在創造一些孩子一個新的節點,並希望這個新的節點到您的網頁替換現有的節點。

您可以:

  • 刪除現有節點的所有兒童,以及新的孩子加入到現有節點
  • 所有的孩子加入到另一個節點(我認爲這是你在做什麼:添加到fragment),然後刪除現有節點,並將該節點添加到該位置。

removeChildappendChild

+0

myContainer.replaceChild(片段,myOldElement)僅適用於一個孩子。在我的片段和myOldElement中,我有多個子節點。我正在尋找一種方法來使用replaceChild()來同時替換多個childrens與其他元素...不只是只有一個 – Mircea 2010-11-03 11:16:45

+0

@Mircea,你說你想要像'replaceChild'這樣的操作數組的例子嗎?恐怕沒有。你必須在循環中調用它。 – Nivas 2010-11-03 11:24:06

+0

是像replaceChild這樣的東西,不僅可以爲一個孩子工作,而且可以爲一羣孩子工作。 – Mircea 2010-11-03 11:25:54