仅修改已启用的复选框

时间:2018-02-14 10:06:54

标签: jquery

我有下面的代码片段,其中$(obj)是主要复选框(全选/全部取消选择)。 该功能正常运行,但我想将功能限制为仅启用复选框。 某些复选框已停用,我不希望它受到该功能的影响。 有关如何这样做的任何想法吗?

 if( $(obj).is(':checked') ) {
        $("#scrollableContent input[type='checkbox']").prop("checked", true);
    }else {
        $("#scrollableContent input[type='checkbox']").prop("checked", false);
    }

3 个答案:

答案 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'));