2017-05-05 75 views
0

以下是我的代碼附加來自身體的內容DIV刪除DOM元素

;(function(window){ 

    var description_window= document.querySelector('.post_description'); 

    var $headings= document.querySelectorAll('.blog_main_content h3'); 

    for (var i = $headings.length - 1; i >= 0; i--) { 

     description_window.appendChild($headings[i]); 
    }; 

})(window); 

這裏的「.post_description」是類的DIV的到我試圖元素追加。元素是'.blog_main_content'中的H3元素。但是,這樣做會從博客主要內容中刪除h3元素。

有人能幫助

感謝

回答

1

您需要克隆問題的節點,目前$headings指的是實際的DOM內容,而不是它的JS版本。您可以使用cloneNode來執行此操作。例如:

;(function(window){ 

var description_window= document.querySelector('.post_description'); 

var $headings= document.querySelectorAll('.blog_main_content h3'); 

for (var i = $headings.length - 1; i >= 0; i--) { 

    description_window.appendChild($headings[i].cloneNode(true)); 
}; 

})(window);

類似的問題在這裏提出,以及how to get clone element of queryselectorall and append to anothor div

+0

感謝您的回答。這工作。我有一個額外的查詢。如果我需要將收集的h3元素更改爲目標div中的標籤,該怎麼辦? – jeff

+0

沒有辦法改變這樣的標籤。您可以將h3節點的文本內容複製到循環中新創建的節點中。在從每個h3拉出'textContent'後,可以使用'document.createElement('your-tag')'函數。 – pxslip

0

您可能需要克隆與cloneNode(真)命令的元素。這會創建一個深層副本。如果您不需要深度複製,請使用cloneNode(false)