Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/429.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 克隆只工作一次_Javascript_Jquery - Fatal编程技术网

Javascript 克隆只工作一次

Javascript 克隆只工作一次,javascript,jquery,Javascript,Jquery,我有一个带有类项的div,当用户单击带有add id的div时,我希望克隆该div的次数相同 这是我的HTML <div class="clone">clone me</div> <div id="add">add</div> 它打印到控制台的次数与我单击“添加”的次数相同 但不会多次克隆div 我将对克隆div进行更改,但不希望对新的克隆div进行更改,因为请求引用了相同的元素,请将其移动到单击处理程序中。还可以使用:first选择器选择第一个

我有一个带有类项的div,当用户单击带有add id的div时,我希望克隆该div的次数相同

这是我的HTML

<div class="clone">clone me</div>
<div id="add">add</div>
它打印到控制台的次数与我单击“添加”的次数相同

但不会多次克隆div


我将对克隆div进行更改,但不希望对新的克隆div进行更改

,因为
请求
引用了相同的元素,请将其移动到
单击
处理程序中。还可以使用
:first
选择器选择第一个元素

使用

$('#添加')。单击(函数(){
//创建对象,然后单击处理程序
var request=$('.clone:first').clone();
request.insertAfter($('.clone:last');
});

克隆我

add
请求
放入函数中,以便它一次又一次地克隆。现在,
请求
只包含一个元素,如果您在之后插入它(它已经插入),则没有效果:

$(function(){
    $('#add').click(function () {
        var request = $('.clone').clone().removeClass("clone");
        console.log('clicked');
        request.insertAfter($('.clone:last'));

        // $('.item:last').after(request); // this doesn't work as well
    });
});
有两个问题:

  • 您必须将
    var-request=$('.clone:first').clone()放入内部
  • 您只需要克隆
    first
    div,因此使用
    $('.clone:first').clone()
  • 给你:

    $('#add').click(function () {
        var request = $('.clone:first').clone();
        console.log('clicked');
        request.insertAfter($('.clone:last'));
    });
    

    或者,您也可以不用克隆来完成同样的事情

    $(function(){
        var request = $('<div class="clone">clone me</div>');
        $('#add').click(function () {
            console.log('clicked');
            request.insertAfter($('.clone:last'));
    
        });
    });
    
    $(函数(){
    var请求=$('clone me');
    $('#添加')。单击(函数(){
    console.log('clicked');
    request.insertAfter($('.clone:last');
    });
    });
    
    否如果我更改了原始版本,新版本将受到影响编辑工作现在我错过的只是额外的克隆谢谢dude:)你添加了什么?请阅读问题我不想只在更改后克隆它before@robert是的,总是这样。这是一个简单易行的解决方案。我建议你用这个。
    $(function(){
        var request = $('<div class="clone">clone me</div>');
        $('#add').click(function () {
            console.log('clicked');
            request.insertAfter($('.clone:last'));
    
        });
    });