Javascript 克隆元素并多次将其添加到Dom //我正在克隆一个dom元素并将其多次插入dom元素中 一些文本 var _clone=$('.tobeclone').clone(true)//创建克隆 var _target=$(“#target”)//这是目标 _target.append(_clone)//附加目标 _target.append(_clone)//附加目标 _target.append(_clone)//附加目标 //这应该添加3个元素,但只添加了一个

Javascript 克隆元素并多次将其添加到Dom //我正在克隆一个dom元素并将其多次插入dom元素中 一些文本 var _clone=$('.tobeclone').clone(true)//创建克隆 var _target=$(“#target”)//这是目标 _target.append(_clone)//附加目标 _target.append(_clone)//附加目标 _target.append(_clone)//附加目标 //这应该添加3个元素,但只添加了一个,javascript,jquery,Javascript,Jquery,append在这里有点奇怪-它会移动元素,但如果您将其附加到多个元素(例如$(div)),它也可能会克隆它。append会为每个div克隆元素。 如果要创建3个元素,只需调用clone3次: //I am cloning a dom element and inserting it in dom element multiple times <div class='toBeCloned'>some text</div> <div id='targe

append
在这里有点奇怪-它会移动元素,但如果您将其附加到多个元素(例如
$(div)),它也可能会克隆它。append
会为每个div克隆元素。
如果要创建3个元素,只需调用
clone
3次:

//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
var _clone=$('.toBeCloned');
var _target=$(“#target”)//这是目标

对于(var i=0;i来说,在DOM中多次插入单个元素在概念上是很奇怪的,因为一个DOM元素最多可以有一个父元素(可怜的元素!)。如果将它插入同一个容器中,作为自己的兄弟元素仍然是很奇怪的,因此这同样被排除在外

这就是为什么当元素添加到其他地方时,它会从结构中移除(如果它在一个结构中)

我现在谈到纯js和DOM


我有一个短暂的印象,jQuery的
append
从未克隆元素,但它“方便地”如果在一组元素上调用,则会这样做。

@Praveen将来,如果你没有足够快地得到问题的答案,请不要发布新问题。在你再次发布原始问题大约一分钟后,我刚刚回答完你的原始问题。--此外,如果你想简化你的问题,请编辑原始问题。投票关闭t他是一个复制品。+1回答得很好Kobi。很高兴你添加了解释,因为它非常清楚!
append
可以将元素从其位置删除,并通过将其附加到多个元素来多次克隆它。(请参见我上面的解释和这里的示例:)。在这种情况下,OP(原始海报)是附加到单个元素,所以它只移动了3次。哦,是的,对不起。如果选择器返回一个集合。jQuery只是隐藏了迭代,因为它似乎适应于它被调用的任何对象(单个元素或集合)。
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
}