Jquery 附加divs内容的副本而不加倍

Jquery 附加divs内容的副本而不加倍,jquery,Jquery,我想添加一个div的另一个副本,或者只是它的内容在原始的下面。使用.clone()时,每次都会加倍。我想每次再加一个相同的。我想不出来。任何建议。代码当前为 $("#element").click(function(){ var newElement = $("#element").clone(); $("#element").append(newElement); }); 您需要将元素设为空(),然后追加 $("#element").click(function(){

我想添加一个div的另一个副本,或者只是它的内容在原始的下面。使用.clone()时,每次都会加倍。我想每次再加一个相同的。我想不出来。任何建议。代码当前为

$("#element").click(function(){

    var newElement = $("#element").clone();
    $("#element").append(newElement);

});

您需要将元素设为空(),然后
追加

$("#element").click(function(){   
    var newElement = $("#element").clone();
    $("#element").empty();
    $("#element").append(newElement);

});

请尝试此代码

 $("#element").click(function(){
    var newElement =$('<div/>').html($("#element").html());
    $("#element").after(newElement);
});
$(“#元素”)。单击(函数(){
var newElement=$('').html($(“#element”).html();
$(“#元素”)。在(新元素)之后;
});

如果您不希望它翻倍,请使用

$("#element").html(newElement);
试试这个

这不是最干净的解决方案,但一定要完成

基本上,您可以在第一次添加操作之前克隆集合,然后重新使用它:

$(document).ready(function () {
    var elements;
    $("#someid").on('click', function(){
        if(!elements)
        elements = $("#someid").clone();

        $("#someid").append(elements.clone());
    })
});

这将在当前元素之后追加元素的副本

$("#element").click(function () {
    $(this).after($(this).html());
});

它每次克隆的原因是因为它包含div中的内容。因此,您不会得到克隆的div,而是得到同一div中的克隆内容,因此它会加倍

你真正需要的是。您可以通过克隆*后的警报(newElement.html())来验证这一点

因此,要在当前div之后克隆一个div,还需要整个div本身,因此除了已经提供的一些答案外,我们还可以使用outerHTML属性

$("#element").click(function(){

    var newElement = $(this.outerHTML);
    $("#element:last").after(newElement);

});
如果还需要click处理程序处理任何新的div,则需要与deprecated相同的:

(Prabu演示的变体,包括上述内容。对于多个id,我更喜欢使用一个类,而不是演示中的#id)

  • 警报的替代方法:log.debug或firebug

您也可以共享html吗?因为您正在克隆id为的元素,它将创建具有相同id的多个元素。谢谢您的建议。在JSFIDLE中,单击withempty不会添加任何副本。而没有空副本的服务器将以指数方式运行。无法使其工作。“我的div”包含输入字段(如果会产生影响)?如果要为克隆创建新的空,请确保从原始div(如果有的话)向其添加任何样式或类属性。如果在此之后检查DOM,您将看到该div不会被复制,而只会复制div的内部内容(这当然很好,因为他提到,即使是内容也可以)
$(document).on('click', '#element', function()