我有下面的代码片段,其中$(obj)是主要复选框(全选/全部取消选择)。 该功能正常运行,但我想将功能限制为仅启用复选框。 某些复选框已停用,我不希望它受到该功能的影响。 有关如何这样做的任何想法吗?
if( $(obj).is(':checked') ) {
$("#scrollableContent input[type='checkbox']").prop("checked", true);
}else {
$("#scrollableContent input[type='checkbox']").prop("checked", false);
}
答案 0 :(得分:3)
您可以使用jQuery选择器:enabled
:
$("#scrollableContent input[type='checkbox']:enabled").prop("checked", true);
答案 1 :(得分:1)
有些选择器只能获取已停用的元素:disabled
或已启用的元素:enabled
if( $(obj).is(':checked') ) {
$("#scrollableContent input[type='checkbox']:not(:disabled)").prop("checked", true);
}else {
$("#scrollableContent input[type='checkbox']:not(:disabled)").prop("checked", false);
}
答案 2 :(得分:0)
正如其他人所提到的,您可以使用:not
选择器,但您也可以将代码重构为一行:
$("#scrollableContent input[type='checkbox']:not(:disabled)").prop("checked", $(obj).is(':checked'));
或者,使用jQuery的not()
:
$("#scrollableContent input[type='checkbox']").not(':disabled').prop("checked", $(obj).is(':checked'));