2016-04-15 14 views
0

我必須刪除body中的所有內容,DOM中的圖像除外。所以,這就是我所做的。如何在Javascript中通過值(而不是引用)來保存選定元素的節點?

  1. 將img標籤存儲在變量中。

    var img_nodes = document.getElementsByTagName('img');

  2. 刪除每一件事情的body

    var body_node = document.getElementsByTagName('body'); body_node[0].innerHTML = ''

  3. 裏面加的存儲節點IMG兒童

    for each (child in img_nodes){ body.appendChild(child); }

但是我運行body_node[0].innerHTML = ''後,img_nodes變成undefined

我想這是因爲元素節點作爲對象存儲在列表中(作爲參考)。我怎樣才能保存我選擇的img_nodes對象?

回答

4

您可以在清除正文內容之前克隆圖像節點。見the documentation on cloneNode。例如:

var cloned_nodes = []; 
for each (child in img_nodes){ 
    cloned_nodes.push(child.cloneNode(true)); 
} 
+0

非常地道 - 很好的答案 – pherris

相關問題