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

jQuery。如何取消选中除一个复选框(已选中)之外的所有复选框,jquery,checkbox,Jquery,Checkbox,我有html项目,4个示例: <div> <div><input type="checkbox" class="foo"> Checkbox</div> <div><input type="checkbox" class="foo"> Checkbox</div> <div><input type="checkbox" class="foo"> Checkbox&l

我有html项目,4个示例:

<div>
    <div><input type="checkbox" class="foo"> Checkbox</div>
    <div><input type="checkbox" class="foo"> Checkbox</div>
    <div><input type="checkbox" class="foo"> Checkbox</div>
    <div><input type="checkbox" class="foo"> Checkbox</div>
    <div><input type="checkbox" class="foo"> Checkbox</div>
    <div><input type="checkbox" class="foo"> Checkbox</div>
</div>

复选框
复选框
复选框
复选框
复选框
复选框

现在,我想要下一个:如果我点击任何复选框-复选框应该被选中,其他复选框应该被取消选中。如何操作?

您可以使用
单选按钮,按名称属性对它们进行分组。如果必须使用
复选框
执行此操作,则可以通过这种方式执行

$('.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);          
});
如果已知静态父文档,则可以将其替换为静态父文档。e、 g.如果div contain动态生成的has id
parentdiv
,则可以

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

使用
prop
而不是
attr
检查属性
选择属性
,或
禁用属性

从jQuery1.6开始,.attr()方法返回未定义的属性 这还没有确定。检索和更改DOM属性,如 表单元素的选中、选中或禁用状态使用 .prop()方法


也许这会帮助你:

.siblings("input[type='checkbox']").attr("checked", true); 
将选中除单击的复选框之外的所有复选框

$(“输入[type=checkbox]”)。在(“单击”,函数(){
如果($(this.val()=“无”){
$(this).sides(“input[type=checkbox]”).attr('checked',false);
}否则{
$(this).sides(“input[value=none]”).attr('checked',false);
}
});

Eaglesoft
丹特里克斯
软凹痕
Denticon
其他
无软件经验-仅纸质记录
另一种解决方案

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

jQuery V:1.6=你想要的是一个单选按钮…@François Wahl,没问题!我不知道。非常感谢你的回答。我了解
单选按钮
组。但我不能使用它,因为我的SpringMVC控制器必须有不同的名称参数。由于这个原因,我决定使用checkbox和JavaScript+1:作为工作解决方案和演示。一般来说,一行代码的备选方案是:
$('.foo').not(this.attr('checked',false))谢谢@FrançoisWahl,建议的语句非常好。伙计们,如果html是由jQuey动态生成的,它就不起作用了!:(在这种情况下我该怎么办?您需要打开绑定单击事件,我已更新了我的答案。这个答案被低估了。)
$( ".foo" ).change(function() {
    $('.foo').not(this).prop('checked', false);
});