切换复选框设置
Toggle Checkbox settings
我有一个 table 个元素,每个元素都有一行有一个选择加入或退出的复选框。由于项目列表可能很长,我想提供一个 "global" 复选框来勾选所有复选框或根据此全局复选框的设置取消勾选它们。
我已经创建了 jQuery 代码来完全做到这一点,但不幸的是只有一次。我无法一次又一次地切换设置。任何想法为什么?谢谢!
这是我的代码:
jQuery('#ci-firmware-assign-toggle-checkbox').click(function(){
if(jQuery('#ci-firmware-assign-toggle-checkbox').is(":checked")) {
jQuery('tbody .ci-firmware-assign-checkbox').each(function(){
if(!jQuery(this).attr("checked")) {
jQuery(this).attr('checked', true);
};
});
} else {
jQuery('tbody .ci-firmware-assign-checkbox').each(function(){
if(jQuery(this).attr("checked")) {
jQuery(this).attr('checked', false);
};
});
}
});
我是这样做的
jQuery('#ci-firmware-assign-toggle-checkbox').click(function(){
if(jQuery('#ci-firmware-assign-toggle-checkbox').is(":checked")) {
$( '.ci-firmware-assign-checkbox' ).prop( "checked", function() {
return true;
})
} else {
$( '.ci-firmware-assign-checkbox' ).prop( "checked", function() {
return false;
})
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id='ci-firmware-assign-toggle-checkbox' type='checkbox' />Toggle All<br/>
<input id='1' type='checkbox' class='ci-firmware-assign-checkbox' />Checkbox 1<br/>
<input id='2' type='checkbox' class='ci-firmware-assign-checkbox' />Checkbox 2
它似乎工作正常
jQuery('#ci-firmware-assign-toggle-checkbox').change(function(){
$('.ci-firmware-assign-checkbox').prop("checked", $(this).is(":checked"))
});
jQuery('#ci-firmware-assign-toggle-checkbox').click(function(){
if(jQuery('#ci-firmware-assign-toggle-checkbox').is(":checked")) {
jQuery('tbody .ci-firmware-assign-checkbox').each(function(){
if(!jQuery(this).**prop**("checked")) {
jQuery(this).**prop**('checked', 'checked');
};
});
} else {
jQuery('tbody .ci-firmware-assign-checkbox').each(function(){
if(jQuery(this).**prop**("checked")) {
jQuery(this).**removeProp**('checked');
};
});
}
});
属性 -> HTML - 仅在 html 中进行更改
属性 -> DOM - 在 dom javascript 状态对象中进行更改
我有一个 table 个元素,每个元素都有一行有一个选择加入或退出的复选框。由于项目列表可能很长,我想提供一个 "global" 复选框来勾选所有复选框或根据此全局复选框的设置取消勾选它们。 我已经创建了 jQuery 代码来完全做到这一点,但不幸的是只有一次。我无法一次又一次地切换设置。任何想法为什么?谢谢!
这是我的代码:
jQuery('#ci-firmware-assign-toggle-checkbox').click(function(){
if(jQuery('#ci-firmware-assign-toggle-checkbox').is(":checked")) {
jQuery('tbody .ci-firmware-assign-checkbox').each(function(){
if(!jQuery(this).attr("checked")) {
jQuery(this).attr('checked', true);
};
});
} else {
jQuery('tbody .ci-firmware-assign-checkbox').each(function(){
if(jQuery(this).attr("checked")) {
jQuery(this).attr('checked', false);
};
});
}
});
我是这样做的
jQuery('#ci-firmware-assign-toggle-checkbox').click(function(){
if(jQuery('#ci-firmware-assign-toggle-checkbox').is(":checked")) {
$( '.ci-firmware-assign-checkbox' ).prop( "checked", function() {
return true;
})
} else {
$( '.ci-firmware-assign-checkbox' ).prop( "checked", function() {
return false;
})
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id='ci-firmware-assign-toggle-checkbox' type='checkbox' />Toggle All<br/>
<input id='1' type='checkbox' class='ci-firmware-assign-checkbox' />Checkbox 1<br/>
<input id='2' type='checkbox' class='ci-firmware-assign-checkbox' />Checkbox 2
它似乎工作正常
jQuery('#ci-firmware-assign-toggle-checkbox').change(function(){
$('.ci-firmware-assign-checkbox').prop("checked", $(this).is(":checked"))
});
jQuery('#ci-firmware-assign-toggle-checkbox').click(function(){
if(jQuery('#ci-firmware-assign-toggle-checkbox').is(":checked")) {
jQuery('tbody .ci-firmware-assign-checkbox').each(function(){
if(!jQuery(this).**prop**("checked")) {
jQuery(this).**prop**('checked', 'checked');
};
});
} else {
jQuery('tbody .ci-firmware-assign-checkbox').each(function(){
if(jQuery(this).**prop**("checked")) {
jQuery(this).**removeProp**('checked');
};
});
}
});
属性 -> HTML - 仅在 html 中进行更改
属性 -> DOM - 在 dom javascript 状态对象中进行更改