Javascript 如何更正此jquery/js复选框代码
我一直很难弄明白这些密码 复选框代码的功能如下: 有一个全局复选框(全部选中)和子(单个)复选框。如果选中(全局)复选框,所有(子)复选框也将被选中,一个div将显示,如果未选中全局复选框,它将取消选中(子)复选框,div将隐藏(jquery hide and show)。将显示选中复选框的编号 这就是问题所在;如果未选中子复选框,则全局复选框仍保持选中状态,如果选中所有子复选框,则全局复选框也应立即选中Javascript 如何更正此jquery/js复选框代码,javascript,jquery,html,checkbox,Javascript,Jquery,Html,Checkbox,我一直很难弄明白这些密码 复选框代码的功能如下: 有一个全局复选框(全部选中)和子(单个)复选框。如果选中(全局)复选框,所有(子)复选框也将被选中,一个div将显示,如果未选中全局复选框,它将取消选中(子)复选框,div将隐藏(jquery hide and show)。将显示选中复选框的编号 这就是问题所在;如果未选中子复选框,则全局复选框仍保持选中状态,如果选中所有子复选框,则全局复选框也应立即选中 <script src="https://ajax.googleapis.com/
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"> </script>
<div id="mydiv" style="display:none;">RESTORE | DELETE
<span>Checked: </span>
<span id="counter"></span>
</div>
<input type="checkbox" id="global">
<br>
<input type="checkbox" class="child">
<input type="checkbox" class="child">
<input type="checkbox" class="child">
<input type="checkbox" class="child">
<input type="checkbox" class="child">
<input type="checkbox" class="child">
<input type="checkbox" class="child">
$(document).ready(function() {
$('#global').click(function() {
$('.child').prop('checked', $(this).is(':checked'));
if ($(this).is(':checked'))
$('#mydiv').show();
else
$('#mydiv').hide();
count();
});
$('.child').change(function() {
var checkedLength = $('.child:checked').length;
if (checkedLength > 0)
$('#mydiv').show();
else
$('#mydiv').hide();
count();
});
});
var count = function() {
var i = $('input.child:checked').length;
$('#counter').html(i);
}
恢复|删除
选中的:
$(文档).ready(函数(){
$(“#全局”)。单击(函数(){
$('.child').prop('checked',$(this).is(':checked');
如果($(this).is(':checked'))
$('#mydiv').show();
其他的
$('#mydiv').hide();
计数();
});
$('.child').change(函数(){
var checkedLength=$('.child:checked').length;
如果(检查长度>0)
$('#mydiv').show();
其他的
$('#mydiv').hide();
计数();
});
});
变量计数=函数(){
var i=$('input.child:checked')。长度;
$('#counter').html(i);
}
感谢所有的支持。
提前感谢。试试:
$(document).ready( function(){
$('#global').change( function(){
var bIsChecked = $(this).is(':checked');
$('.child').prop('checked', bIsChecked );
$('#mydiv')[ bIsChecked ? 'show' : 'hide' ]();
count();
});
$('.child').change( function(){
var n = count();
$('#mydiv')[ n>0 ? 'show' : 'hide' ]();
$('#global')[0].checked = n==$('.child').length ;
});
});
var count =function(){
var n = $('.child:checked').length;
$('#counter').html( n );
return n
}
尝试:
尝试:
尝试:
$(文档).ready(函数(){
var div=$(“#mydiv”),
全局=$(“#全局”),
childchecks=$(':checkbox.child');
global.on('change',function(){
childchecks.prop('checked',this.checked);
var how=this.checked?'show':'hide';
分区[如何]();
});
childchecks.on('change',function()){
global.prop('checked',childchecks.length==childchecks.filter(':checked').length);
var how=childchecks.length==childchecks.filter(':checked')。length?'show':'hide';
分区[如何]();
});
});代码>
恢复|删除
选中的:
$(文档).ready(函数(){
var div=$(“#mydiv”),
全局=$(“#全局”),
childchecks=$(':checkbox.child');
global.on('change',function(){
childchecks.prop('checked',this.checked);
var how=this.checked?'show':'hide';
分区[如何]();
});
childchecks.on('change',function()){
global.prop('checked',childchecks.length==childchecks.filter(':checked').length);
var how=childchecks.length==childchecks.filter(':checked')。length?'show':'hide';
分区[如何]();
});
});代码>
恢复|删除
选中的:
$(文档).ready(函数(){
var div=$(“#mydiv”),
全局=$(“#全局”),
childchecks=$(':checkbox.child');
global.on('change',function(){
childchecks.prop('checked',this.checked);
var how=this.checked?'show':'hide';
分区[如何]();
});
childchecks.on('change',function()){
global.prop('checked',childchecks.length==childchecks.filter(':checked').length);
var how=childchecks.length==childchecks.filter(':checked')。length?'show':'hide';
分区[如何]();
});
});代码>
恢复|删除
选中的:
$(文档).ready(函数(){
var div=$(“#mydiv”),
全局=$(“#全局”),
childchecks=$(':checkbox.child');
global.on('change',function(){
childchecks.prop('checked',this.checked);
var how=this.checked?'show':'hide';
分区[如何]();
});
childchecks.on('change',function()){
global.prop('checked',childchecks.length==childchecks.filter(':checked').length);
var how=childchecks.length==childchecks.filter(':checked')。length?'show':'hide';
分区[如何]();
});
});代码>
恢复|删除
选中的:
将#全局更改为.global
这应该行得通。只需要一个事件
$(document).ready(function() {
var child = $('.child');
var global = $('.global');
$('input').on("change", function() {
//check if checkbox is the global one
if($(this).hasClass("global")) {
//if yes, then set all childs to checked true, if not, then to false
($(this).prop('checked')) ? child.prop('checked', true) : child.prop('checked', false);
} else {
var oneChecked = false;
//every change on a checkbox go though all childboxes an check if on of them is checked
child.each(function() {
if($(this).prop('checked') == true) {
oneChecked = true;
}
});
//if one was checked global has to be checked, if no one was checked it has to be false
(oneChecked) ? global.prop('checked', true) : global.prop('checked', false);
}
});
});
将#全局更改为.global
这应该行得通。只需要一个事件
$(document).ready(function() {
var child = $('.child');
var global = $('.global');
$('input').on("change", function() {
//check if checkbox is the global one
if($(this).hasClass("global")) {
//if yes, then set all childs to checked true, if not, then to false
($(this).prop('checked')) ? child.prop('checked', true) : child.prop('checked', false);
} else {
var oneChecked = false;
//every change on a checkbox go though all childboxes an check if on of them is checked
child.each(function() {
if($(this).prop('checked') == true) {
oneChecked = true;
}
});
//if one was checked global has to be checked, if no one was checked it has to be false
(oneChecked) ? global.prop('checked', true) : global.prop('checked', false);
}
});
});
将#全局更改为.global
这应该行得通。只需要一个事件
$(document).ready(function() {
var child = $('.child');
var global = $('.global');
$('input').on("change", function() {
//check if checkbox is the global one
if($(this).hasClass("global")) {
//if yes, then set all childs to checked true, if not, then to false
($(this).prop('checked')) ? child.prop('checked', true) : child.prop('checked', false);
} else {
var oneChecked = false;
//every change on a checkbox go though all childboxes an check if on of them is checked
child.each(function() {
if($(this).prop('checked') == true) {
oneChecked = true;
}
});
//if one was checked global has to be checked, if no one was checked it has to be false
(oneChecked) ? global.prop('checked', true) : global.prop('checked', false);
}
});
});
将#全局更改为.global
这应该行得通。只需要一个事件
$(document).ready(function() {
var child = $('.child');
var global = $('.global');
$('input').on("change", function() {
//check if checkbox is the global one
if($(this).hasClass("global")) {
//if yes, then set all childs to checked true, if not, then to false
($(this).prop('checked')) ? child.prop('checked', true) : child.prop('checked', false);
} else {
var oneChecked = false;
//every change on a checkbox go though all childboxes an check if on of them is checked
child.each(function() {
if($(this).prop('checked') == true) {
oneChecked = true;
}
});
//if one was checked global has to be checked, if no one was checked it has to be false
(oneChecked) ? global.prop('checked', true) : global.prop('checked', false);
}
});
});
这属于codereview.stackexchange.com,这段代码有什么问题?@DanielA.White标题的意思是,我如何改进这段代码,使其能够正常工作。有一个问题。@Daniel@Rory McCrossan@Hacketo对我发布它的方式表示抱歉,我的意思是,我如何纠正我上面解释的全局和子复选框的错误?您可以更改问题的标题吗?这是误导性的。这属于codereview.stackexchange.com此代码有什么问题?@DanielA.White标题的意思是,我如何改进此代码以使其按我所希望的方式工作。有一个问题。@Daniel@Rory McCrossan@Hacketo对我发布它的方式表示抱歉,我的意思是,我如何纠正我上面解释的全局和子复选框的错误?您可以更改问题的标题吗?这是误导性的。这属于codereview.stackexchange.com此代码有什么问题?@DanielA.White标题的意思是,我如何改进此代码以使其按我所希望的方式工作。有一个问题。@Daniel@Rory McCrossan@Hacketo对我发布它的方式表示抱歉,我的意思是,我如何纠正我上面解释的全局和子复选框的错误?您可以更改问题的标题吗?这是误导性的。这属于codereview.stackexchange.com此代码有什么问题?@DanielA.White标题的意思是,我如何改进此代码以使其按我所希望的方式工作。有一个问题。@Daniel@Rory McCrossan@Hacketo对我发布它的方式表示抱歉,我的意思是,我如何纠正我上面解释的全局和子复选框的错误?您可以更改问题的标题吗?这有误导性。请单击代码段Ctrl-M图标。。。它是第二组图标中的最后一个图标。取消选中全局时是否取消选中子项?此“childchecks.prop('checked',true);”应该类似于“childchecks.prop('checked',this.checked);”好球@