克隆元素并将其多次添加到Dom

时间:2010-03-16 05:58:14

标签: javascript jquery

//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

2 个答案:

答案 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不会克隆元素,但如果在一组元素上调用它,它“方便”地这样做。