关于javascript:jQuery cloneTo而不是appendTo?

jQuery cloneTo instead of appendTo?

我试图使用jquery appendto将元素复制到另一个容器中。对象确实是附加的,但它是从源中删除的。有没有一种方法可以在保留源元素的同时附加该元素?叫它"复制"叫它"克隆",随便你怎么叫。

这是我的当前代码:

1
2
3
4
jQuery(document).ready(function()
{
    jQuery('#button').appendTo('#panel'); //button should appear ALSO in panel.
});


接近,但不够接近。下面的代码将clone()元素,然后将其附加到#panel中。

1
2
3
4
jQuery(document).ready(function()
{
    jQuery('#button').clone().appendTo('#panel');
});

注意,在同一页中使用两次ID是违反标准的。所以,要解决这个问题:

1
2
3
4
jQuery(document).ready(function()
{
    jQuery('#button').clone().attr('id', 'newbutton').appendTo('#panel');
});

在附加所选jquery对象之前,只需对其调用clone()方法:

1
$('#button').clone().appendTo('#panel');

如果还需要克隆附加到所选元素的所有事件处理程序,请将布尔型true作为参数传递给clone()方法。

另外,您可能希望更改所选元素的ID属性…这就像:

4


您需要运行的代码是:

1
2
3
4
jQuery(document).ready(function()
{
    jQuery('#button').clone().appendTo('#panel'); //button should appear ALSO in panel.
});

它的作用是从DOM中获取节点,然后在内存中对其进行克隆。然后,该行接受这个新对象(jQuery('#button').clone()),然后将其附加到#panel处的dom中。这通常是一个很好的策略:尽量少触摸DOM来进行DOM操作。您可以对节点和元素进行大量的操作,而不必在最后插入或附加它们。