从body的内容添加DIV将删除DOM元素

时间:2017-05-05 13:14:56

标签: javascript dom append

以下是我的代码

;(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元素。

有人可以协助

谢谢

2 个答案:

答案 0 :(得分: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));
};

})(窗口);

此处也提出了类似的问题how to get clone element of queryselectorall and append to anothor div

答案 1 :(得分:0)

您可能需要使用cloneNode(true)命令克隆元素。这会创建一个深层副本。如果您不需要深层复制,请使用cloneNode(false)