javascript - 多次克隆一个 Div

标签 javascript clone

请轻点,我刚学。我试图多次克隆一个 div。我可以让它做一次,但不能做几次。我想在不使用 JQuery 的情况下执行此操作(首先尝试了解基本的 Javascript)。下面是一个示例。我做错了什么?

var myDiv = document.getElementById("test");
var divClone = myDiv.cloneNode(true); // the true is for deep cloning
document.body.appendChild(divClone);
document.body.appendChild(divClone);
document.body.appendChild(divClone);

这是在 jsfiddle 上的: http://jsfiddle.net/dmperkins74/zvdekh8p/

提前致谢。

最佳答案

您需要在每次插入之前克隆它。 I updated your fiddle :

var myDiv = document.getElementById("test");

var divClone = myDiv.cloneNode(true); // the true is for deep cloning

document.body.appendChild(divClone);
divClone = myDiv.cloneNode(true);
document.body.appendChild(divClone);
divClone = myDiv.cloneNode(true);
document.body.appendChild(divClone);

发生这种情况是因为每个节点恰好是一个节点,并且只能存在于一个地方。这就是您在再次附加之前复制它的原因。

您可以将功能包装在一个函数中以多次使用它(还有一个 fiddle for this ):

function appendNCopies(n, original, appendTo) {
    for(var i = 0; i < n; i++) {
        var clone = original.cloneNode(true);
        appendTo.appendChild(clone);
    }
}

var myDiv = document.getElementById("test");
appendNCopies(3, myDiv, document.body);

关于javascript - 多次克隆一个 Div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28088724/

相关文章:

javascript - 如何禁用所有 div 内容

java - JGit 错误-> 由 : java. 引起 lang.NoSuchMethodError: No virtual method toPath()

javascript - 页面正在获取外部数据...从哪里获取?

javascript - React Native AsyncStorage 第一次尝试时无法获取

javascript - ReactJS - 如何在可见后关注组件

javascript - if语句里面有两组括号,这是什么意思?

javascript - 在 HTML 上克隆片段 - 最佳实践

rust clone() vs Rc 还是 Arc?

java - 克隆具有同一类的父级和子级的对象

java - 将类枚举传递给克隆是否克隆安全?