Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/402.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/3/html/84.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_Html - Fatal编程技术网

Javascript 与活动代表团有关的问题

Javascript 与活动代表团有关的问题,javascript,html,Javascript,Html,我正在尝试在填充表后克隆该表。在td中,我放置了一些输入和文本区域标记。我遇到的问题是表中的内容没有被克隆。我曾尝试使用事件授权,但似乎我做错了什么。 这是JSfiddle,在表中写入一些内容,然后按clone`` 这是一个jquery错误-深度克隆不适用于文本区域 这在Firefox中是一个问题,但在Chrome中显然是一样的 当前行为记录在api.jquery.com上,当然也记录在这里。插件可用于提供所请求的行为。这张罚单标记为patchwelcome,但需要注意的是,在jQuery中修

我正在尝试在填充表后克隆该表。在td中,我放置了一些输入和文本区域标记。我遇到的问题是表中的内容没有被克隆。我曾尝试使用事件授权,但似乎我做错了什么。 这是JSfiddle,在表中写入一些内容,然后按clone``


这是一个jquery错误-深度克隆不适用于文本区域 这在Firefox中是一个问题,但在Chrome中显然是一样的

当前行为记录在api.jquery.com上,当然也记录在这里。插件可用于提供所请求的行为。这张罚单标记为patchwelcome,但需要注意的是,在jQuery中修复此边缘情况会在90%的时间内导致性能下降,而这在不需要的情况下会发生

下面的代码可以工作并复制输入字段的内容,但是由于上面的错误,您必须自己复制textareas的内容或使用插件

$("#clonetable").on('click', function(){
     $("#a").html($('#masterTable').clone());
});
您可以尝试使用.clone[withDataAndEvents][,deepWithDataAndEvents],换句话说,使用.clonetrue,true,但这没有什么区别

以下是代码,包括复制textarea内容的黑客:

 $("#clonetable").on('click',function(){
    $("#a").html($('#masterTable').clone());
    var my_textareas     = $('#masterTable textarea').slice(2,4);
    var result_textareas = $("#a textarea");

    for (var i = 0, l = my_textareas.length; i < l; ++i){
        $(result_textareas[i]).val($(my_textareas[i]).val());
    }
 });

这是您的问题中的链接代码。来源:注意:出于性能原因,某些表单元素的动态状态,例如键入textarea的用户数据和用户对select的选择不会复制到克隆元素。如果您认为我回答了您的问题,如果你能点击接受,我会很高兴。还有一件事。如果文本放在html中的textarea标记之间,然后运行克隆代码,那么它将完全克隆包含文本的内容。当标签之间已经存在文本时,为什么它能正确克隆?不知道为什么。据推测,查找和复制页面加载的内容要比查找“脏”文本区域容易得多,即稍后更改。我将在我的答案中包括复制textarea内容的黑客,我在错误报告的某处找到了它。它有效,我在JSFIDLE中尝试过。显然,您不能经常使用ID,因为ID也是克隆的,所以您有重复的ID。
 $("#clonetable").on('click',function(){
    $("#a").html($('#masterTable').clone());
    var my_textareas     = $('#masterTable textarea').slice(2,4);
    var result_textareas = $("#a textarea");

    for (var i = 0, l = my_textareas.length; i < l; ++i){
        $(result_textareas[i]).val($(my_textareas[i]).val());
    }
 });