//I am cloning a dom element and inserting it in dom element multiple times
<div class='toBeCloned'>some text</div>
<div id='target'></div>
var _clone=$('.toBeCloned').clone(true);//create clone
var _target=$('#target'); //this is target
_target.append(_clone); //append target
_target.append(_clone); //append target
_target.append(_clone); //append target
//this should add 3 elements but it's adding only one
答案 0 :(得分:7)
append
在这里有点奇怪 - 它会移动元素,但是如果你将它附加到多个元素上它也可以克隆它(例如$(div).append
将克隆每个div的元素)。
如果您想创建3个元素,只需拨打clone
3次:
var _clone=$('.toBeCloned');
var _target=$('#target'); //this is target
for(var i=0;i<3;i++){
_target.append(_clone.clone(true)); //append target, clone every time
}
答案 1 :(得分:0)
在DOM中多次插入单个元素在概念上很奇怪,因为DOM元素可以有最多一个父元素(穷元素!)。事件如果你把它插入相同的容器中,那么成为一个自己的兄弟姐妹仍然很奇怪,所以这同样被排除了。
这就是为什么只要将元素添加到其他地方,就会从结构中删除元素(如果它在一个元素中)。
我现在谈到了纯粹的js和DOM。
我简单地认为jQuery的append
不会克隆元素,但如果在一组元素上调用它,它“方便”地这样做。