我有一系列的复选框,每周都有一个" All"复选框以选中/取消选中所有日期。我的用例需要多组这些复选框,并且当我动态创建它们时,我使用jQuery.clone()函数复制集合并将它们添加到新行;但是克隆的复选框无法正常工作。 OnClick事件触发;但无论出于何种原因,我都无法访问“已检查过的”#39; Chrome中任何克隆复选框的属性。我尝试了以下方法(使用All复选框作为示例):
$('input[name="all"]:last').prop('checked')
$('input[name="all"]:last')[0].checked
$('input[name="all"]:last').attr('checked')
所有返回未定义。我发现实际上返回与检查状态有关的任何方法的唯一方法是:
$('input[name="all"]:last').is(':checked')
我在这里复制了错误:http://jsfiddle.net/YfY5U/
真的希望有人知道发生了什么,因为我完全陷入困境:(
答案 0 :(得分:2)
在这部分代码中:
var new_content = $('.initial').clone()
.removeClass('initial')
.find(':checkbox').each(function(){
$(this).removeProp('checked');
}).end().appendTo('fieldset');
您删除属性"已检查"克隆后。所以毫不奇怪它是未定义的。 只需改变
$(this).removeProp('checked');
到
$(this).prop('checked', false)