我正在动态构建表单。我将输入的id标签重命名为特定值(所以我稍后可以引用它们)。当我包含一个复选框输入时,我最终得到一个收音机(或至少是奇怪的行为)与单个复选框。 Fiddle来说明问题...
HTML
<div id='first'>
<input type="checkbox" id="some-0"><label for="some-0">My Label</label></input>
</div>
<div id='second'>
<input type="checkbox" id="some-1"><label for="some-1">My Label</label></input>
</div>
的JavaScript
$('[id^=some]').button();
var temp = $('#second').clone(true);
temp.find('input').each(function (){
var NAME = $(this).attr('id').split('-');
var LINEcount = 2;
$(this).attr('id',NAME[0]+'-'+LINEcount);
});
$('body').append(temp);
答案 0 :(得分:1)
好吧,我相信您的问题不在于clone
功能,而在于button
功能。您还需要更改for
中的<label>
属性。尝试使用以下代码:
$('[id^=some]').button();
var temp = $('#second').clone(true);
temp.find('input').each(function (){
var NAME = $(this).attr('id').split('-');
var LINEcount = 2;
$(this).attr('id',NAME[0]+'-'+LINEcount);
$(this).next().attr('for',NAME[0]+'-'+LINEcount);
});
$('body').append(temp);
这是我的Fiddle ..
答案 1 :(得分:0)
我希望有人帮助你DEMO 我在点击事件中做到了..你可以用你想要的事件来改变它我将你的主要div添加到第一个和第二个更改为top-div-1和top-div-2
$(document).ready(function(){
$('.thisDiv > input').button();
$('input[type="button"]').on('click',function(){
var count = ($('.thisDiv').length) +1;
$('body').append('<div class="thisDiv" id="top-div-'+count+'"><input type="checkbox" id="some-'+count+'"><label for="some-'+count+'">My Label '+count+'</label></input</div>');
$('.thisDiv > input').button();
});
});
如果你在寻找什么?对于我在这里的任何帮助
答案 2 :(得分:-1)
var clone=$("#original_object").clone( true );
clone.appendTo("#new_parent");