bootstrap使用js检查/取消选中多个元素

我正在努力使这项工作,但不能实现它。 我有一个bootstrap模板,我想检查并取消选中多个复选框(如下所示: http : //jsfiddle.net/v6wmV/177/ )我知道这是一个有许多解决方案的常见主题,但似乎没有一个适用于这种情况我想知道为什么。

这是视图中的代码段:

这是我的js文件(带有其他function):

 $('.hide').hide(); $('#registered').click(function(){ $('#content').toggle('fast'); }); $('#age').click(function () { $('#content2').hide('fast'); $('#content1').show('fast'); }); $('#range').click(function () { $('#content1').hide('fast'); $('#content2').show('fast'); }); $('#with').click(function(){ $('#child').toggle('fast'); }); $('#showstates').click(function(){ $('#states').show('fast'); }); $('#hidestates').click(function(){ $('#states').hide('fast'); }); //function for check/uncheck $('.all').click(function() { var $checkboxes = $(this).parent().find('input[type=checkbox]'); $checkboxes.prop('checked', $(this).is(':checked')); }); 

这是小提琴: http : //jsfiddle.net/jimena/j56Dy/这是行不通的

你需要上升两个阶段而不是一个阶段。 parent()为您提供label元素,您需要转到“controls”-classed div来应用您的find方法:

var $ checkboxes = $(this).parent()。parent()。find(’input [type = checkbox]’);

当然,这是对您的代码方式应用最小的更改。 Joe在这里提供的那个可能更聪明:获取所需的所有复选框而无需使用parent()方法。 但要这样做,您可能需要标记您的复选框组,这样您就不会选择DOM中的所有复选框。

顺便说一句,你不必在某个时候显示你的隐藏div看到你的复选框吗?

编辑>确定实际上Manish对父母来说是对的,忘了我的回答:D