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