我有一個DOM節點的集合,我想用新的DOM節點來替換。 由於我將信息傳遞到函數的方式,我只有一個名爲collection的變量,它是一個充滿HtmlTableRowElements的對象,我想用一個名爲Rows的新變量替換它。用新節點替換DOM節點。
這裏是我有什麼
var parent = collection[0].parentNode;
parent.innerHTML = "";
parent.appendChild(rows);
但是這給了我很長的奇怪的錯誤。
未捕獲的異常:[異常... 「無法轉換的JavaScript參數arg 0 [nsIDOMHTMLTableSectionElement.appendChild]」 nsresult: 「0x80570009(NS_ERROR_XPC_BAD_CONVERT_JS)」 位置:「JS幀:: http://127.0.0.1/test.php :: ::線103 「數據:無]
所以我也嘗試
collection[0].parentNode.innerHTML = "";
collection[0].parentNode.appendChild(rows);
返回
collection [0] .parentNode爲空
我明白爲什麼第二個選項會返回錯誤。我會想象第一個選項是返回一個錯誤,因爲我已經刪除了變量引用的元素。
我開始認爲,尋找父母和取代它的內容是不是這樣做的方式。
有幫助嗎?
行是一個對象數組。但是它已經從DOM中刪除了,所以我不知道爲什麼我需要一個DocumentFragment,我從中可以看到的唯一好處是我可以向父級追加單個子級,但是我仍然需要遍歷行建立孩子。 Upvote,但支票將不得不轉到費利克斯,因爲它的工作原理和優化的性能。 – rlemon
@rlemon文檔片段就像一個只保存DOM節點的數組。你不能在數組中使用appendChild,但是你可以在文檔片段中使用它。 – s4y
也是,他先回答:) – rlemon