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/
提前致谢。
答案 0 :(得分:1)
每次都需要克隆它。
var myDiv = document.getElementById("test");
document.body.appendChild(myDiv.cloneNode(true));
document.body.appendChild(myDiv.cloneNode(true));
document.body.appendChild(myDiv.cloneNode(true));
答案 1 :(得分:1)
您需要在每次插入之前克隆它。 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);
答案 2 :(得分:0)
你只创建了一次cloneNode,这就是为什么会发生这种情况。使用此代码:
var myDiv = document.getElementById("test");
var divClone;
for(var i=0;i<10;i++)
{
divClone = myDiv.cloneNode(true); // the true is for deep cloning
document.body.appendChild(divClone);
}
答案 3 :(得分:0)
jQuery变体非常简单:
var your_div = $('#test').clone()[0].outerHTML;
$('.some_class_where_to_clone').append(your_div);
$('.some_class_where_to_clone').append(your_div);
$('.some_class_where_to_clone').append(your_div);