jQuery的。 如何取消选中除一个以外的所有复选框(已选中)

我有html项目,4个例子:

Checkbox
Checkbox
Checkbox
Checkbox
Checkbox
Checkbox

现在,我想要下一个:如果我点击任何复选框 – 应该选中复选框,并且应该取消选中其他复选框。 我该怎么做?

您可以使用radio按钮并按名称属性对它们进行分组。 如果你必须使用checkboxes那么你可以这样做,

现场演示

 $('.foo').click(function(){ $('.foo').attr('checked', false); $(this).attr('checked', true); }); 

对于动态生成的html,您需要其上允许您使用静态父级委托事件,您可以使用不知道静态父级的文档。

 $(document).on('click','.foo', function(){ $('.foo').attr('checked', false); $(this).attr('checked', true); }); 

如果已知文档,则可以用静态父代替。 例如,如果div包含动态生成的具有id parentdiv那么你可以拥有

 `$('#parentdiv').on('click','.foo', function(){` 

编辑

根据文档使用prop而不是attrcheckedselecteddisabled属性。

从jQuery 1.6开始,.attr()方法为尚未设置的属性返回undefined。 要检索和更改DOM属性(如表单元素的已选中,已选择或已禁用状态),请使用.prop()方法。

另一解决方案

 $('.foo').click(function(){ $('.foo').not(this).attr('checked', false); }); 

这里有点我碰巧在做的事情:

 .siblings("input[type='checkbox']").attr("checked", true); 

将选中除了单击的复选框以外的所有复选框。

 $("input[type=checkbox]").on("click", function() { if ($(this).val() == "none") { $(this).siblings("input[type=checkbox]").attr('checked', false); } else { $(this).siblings("input[value=none]").attr('checked', false); } }); 
  






jQuery V:1.6 = <

 $( ".foo" ).change(function() { $('.foo').not(this).prop('checked', false); });