修改
感谢答案的人,它确实看起来正确,它适用于jsfiddle.net,但在我的代码中警报启动很好,但复选框没有任何反应。 :/
$('#selectChb').click(function(){
$(':checkbox').prop("checked", true);
alert("1");
});
$('#deselectChb').click(function(){
$(':checkbox').prop("checked", false);
alert("2");
});
...
<div id="chbDiv" class="ui-widget ui-widget-content ui-corner-all" > <br></br>
<table width="90%" border="0" align="center" cellpadding="5" cellspacing="0">
<tr>
<td colspan="2">Following:</td>
<td> </td>
</tr>
<tr>
<td width="25" align="left"><input type="checkbox" id="check1" /><label for="check1"> </label></td>
<td width="45" align="center"><img src="face_01.jpg" width="32" height="32"></td>
<td>Andrew Lloyd Webber</td>
</tr>
<tr>
<td width="25" align="left"><input type="checkbox" id="check2" /><label for="check2"> </label></td>
<td width="25" align="center"><img src="face_02.jpg" width="32" height="32"></td>
<td>Richard Branson</td>
</tr>
<tr>
<td width="25" align="left"><input type="checkbox" id="check3" /><label for="check3"> </label></td>
<td width="25" align="center"><img src="face_03.jpg" width="32" height="32"></td>
<td>Dmitry Medvedev</td>
</tr>
</table>
<br>
<table width="90%" border="0" align="center" cellpadding="5" cellspacing="0">
<tr>
<td><a href="#" id="selectChb" class="ui-state-default ui-corner-all"><span class="ui-icon ui-icon-check"></span>Select All</a>
<a href="#" id="deselectChb" class="ui-state-default ui-corner-all"><span class="ui-icon ui-icon-close"></span>Deselect All</a></td>
<td> </td>
<td> </td>
</tr>
</table>
<br>
</div>
<br>
<div class="ui-widget ui-widget-content ui-corner-all">
答案 0 :(得分:23)
这是一个派生的终极解决方案,可以找到DIV中的所有复选框,并根据DIV之外的另一个复选框检查或取消选中,该复选框表示选中/取消选中
function checkCheckboxes( id, pID ){
$('#'+pID).find(':checkbox').each(function(){
jQuery(this).attr('checked', $('#' + id).is(':checked'));
});
}
用法:
<label>check/uncheck
<input type="checkbox" id="checkall" value="1"
onclick="checkCheckboxes(this.id, 'mycheckboxesdiv');" >
</label>
<div id="mycheckboxesdiv">
<input type="checkbox" value="test1" name="test">
<input type="checkbox" value="test2" name="anothertest">
<input type="checkbox" value="test3" name="tests[]">
<input type="checkbox" value="test1" name="tests[]">
</div>
优点是您可以使用独立的复选框集,并选中/取消选中与其他集无关的所有复选框。它很简单,无需使用每个复选框的id或类。
答案 1 :(得分:11)
尝试以下方法,
<强> Live Demo 强>
$('#selectChb').click(function(){
$(':checkbox').prop("checked", true);
});
答案 2 :(得分:5)
试试此代码
$("#Div_ID").find('input[type=checkbox]').each(function () {
// some staff
this.checked = true;
});
答案 3 :(得分:4)
尝试迭代找到的每个项目
$('#selectChb')。点击(function(){
alert("c!"); $('#chbDiv').find(':checkbox').each(function(){ $(this).attr('checked', !checkbox.attr('checked')); }); });
答案 4 :(得分:2)
由于声誉问题,无法对latis答案发表评论。
有点迟到但这对我有用(所有学分都归功于拉提斯)
function checkCheckboxes( id, pID ){
$('#'+pID).find(':checkbox').each(function(){
$(this).prop('checked', $('#' + id).is(':checked'));
});
}
基本上用道具替换了attr。
答案 5 :(得分:1)
此代码将切换复选框.uncheck是一个给予href的类。
$('.uncheck').bind('click', function(e) {
$(':checkbox').prop('checked', ($(':checkbox').prop('checked')) ? false : true);
e.preventDefault();
});
答案 6 :(得分:1)
我有一个(伪)表,其中包含一系列复选框,我希望只需点击一下即可检查/取消选中。
为了达到这个目的,我将id分配给各自的行(在循环期间使用php),并使用另一个复选框结束每一行,我给了班级&#34;切换&#34;和值与封闭行/ div的id相同。
像这样:
<div class="table">
<div class="row" id="rowId">
<span class="td"><input type="checkbox" name="cb1"></span>
<span class="td"><input type="checkbox" name="cb2"></span>
<span class="td"><input type="checkbox" name="cbn"></span>
<span class="td"><input type="checkbox" class="toggle" value="rowId"></span>
</div>
...
</div>
然后,当单击此复选框时,我创建了以下脚本:
$(".toggle").click(function(){
var id = this.value;
if ($(this).attr("checked")) {
$(this).attr("checked", false);
$('#' + id).find(':checkbox').prop("checked", false);
} else {
$(this).attr("checked", true);
$('#' + id).find(':checkbox').prop("checked", true);
}
});
希望这有帮助。
编辑:从脚本中删除了全局并调整了检查行为。
答案 7 :(得分:0)
尝试此操作以切换复选框
var bool = false;
$('#selectAll').click(function(e){
$('.users-list :checkbox').prop("checked", bool);
bool = !bool;
});
答案 8 :(得分:0)
$(document).on('change', '.toggle', function(e){
var data_target = $(this);
if($(data_target).is( ":checked" ))
{
var id_module = parseInt($(data_target).attr('id_module'));
$('#id_perm_module_'+id_module).find(':checkbox').each(function()
{
$(this).prop('checked', true);
});
}
else
{
var id_module = parseInt($(data_target).attr('id_module'));
$('#id_perm_module_'+id_module).find(':checkbox').each(function()
{
$(this).prop('checked', false);
});
}
});
id_perm_module是您尝试搜索所有复选框的div
答案 9 :(得分:-1)
尝试替换
$(':checkbox').prop("checked", true);
与
$(':checkbox').attr("checked", true);
某些浏览器版本不支持prop