jQuery只检查启用复选框

Hom*_*r_J 7 checkbox jquery toggle

我的复选框:

<input disabled="disabled" class="Spec" type="checkbox" value="1" />
<input class="Spec" type="checkbox" value="2" />
<input disabled="disabled" class="Spec" type="checkbox" value="5" /> 
<input class="Spec" type="checkbox" value="8" /> 
<input disabled="disabled" class="Spec" type="checkbox" value="10" />  
<input class="Spec" type="checkbox" value="30" />
Run Code Online (Sandbox Code Playgroud)

我的jQuery选择所有复选框,无论它们是启用还是禁用 - 是否可以仅检查已启用的复选框?

$('#Spec_all').on('click', function() {
    $('.Spec').attr('checked', $(this).is(":checked"));
});
Run Code Online (Sandbox Code Playgroud)

bil*_*can 20

您可以使用:enabled伪选择器:

$('.Spec:enabled:checked')
Run Code Online (Sandbox Code Playgroud)

因此,选择具有该类的所有元素(Spec未禁用)并进行检查.

编辑

您不希望在选择器中选中选中的复选框,否则一旦取消选中它们,就不会再次选中它们.您可以执行以下操作:

$('#Spec_all').on('click', function() {
   $('.Spec:enabled').prop('checked', this.checked);
});
Run Code Online (Sandbox Code Playgroud)

这是一个小提琴