正如标题所说,我无法让.attr('checked', false)
在IE6上工作。我正在克隆一些HTML,然后在将新克隆的HTML分配给一个元素之前,我运行它并取消检查新克隆部分中的所有复选框,这在除了IE 6之外的所有浏览器中都能正常工作。 p>
以下是代码:
//give each input and select a custom id
clone.find('input, select').each( function( i ) {
//get the id attribute
var id = $(this).attr('id');
//uncheck all of the tick boxes
$(this).attr('checked', '');
//get the name attribute
var name = $(this).attr('name');
$(this).attr('name', name+"_"+count)
$(this).attr('id', id+"_"+count+"_"+i)
});
//append the newly created area to the area wrapper
clone.appendTo('[data-custom="area_wrapper"]');
有什么方法可以解决这个问题吗?
答案 0 :(得分:7)
最简单的解决方案也是优化:
this.checked = false;
事实上,您可以将此优化应用于所有代码:
//get the id attribute
var id = this.id;
//uncheck all of the tick boxes
this.checked = false;
//get the name attribute
var name = this.name;
this.name = name+"_"+count;
this.id = id+"_"+count+"_"+i;
这是因为底层的jQuery代码无论如何都会访问这些属性(attr
主要直接使用属性直到jQuery 1.6)。
答案 1 :(得分:3)
尝试
.removeAttr("checked")
答案 2 :(得分:1)
没有HTML属性'checked = false',对于复选框只有'checked = checked',对于未选中的框没有任何内容。
使用.removeAttr('checked');