所有未禁用复选框的jquery选择器

所有未禁用复选框的jquery选择器,jquery,jquery-selectors,checkbox,Jquery,Jquery Selectors,Checkbox,如何找到所有选中且未禁用的复选框 $('input[type="checkbox"]:checked').not(":disabled"); 这里有一个类似的例子: $("input[type='checkbox']:checked").not(":disabled")... 这将查找输入s的字段,其类型为复选框,已选中且未禁用。如果这不起作用,则应使用属性检查: $("input[type='checkbox']:checked").not("[disabled]")... 或者,正如@

如何找到所有选中且未禁用的复选框

$('input[type="checkbox"]:checked').not(":disabled");
这里有一个类似的例子:

$("input[type='checkbox']:checked").not(":disabled")...
这将查找
输入
s的字段,其类型为
复选框
,已选中且未禁用。如果这不起作用,则应使用属性检查:

$("input[type='checkbox']:checked").not("[disabled]")...
或者,正如@lonesomeday敏锐地指出的,您可以将其组合成一个选择器:

$("input[type='checkbox']:checked:not(:disabled)")...

我已经准备好了概念证明。

您可以使用此选择器

​$('input[type=checkbox]:checked:not(:disabled)')​

选中此项

如何
$(“输入[type='checkbox']:选中:已启用”)

您必须像在我眼中一样使用.filter()函数,但从选择器中丢失
:选中
,并使筛选函数成为
!this.disabled&&this.checked
将极大地提高性能。具体原因是什么?我认为选择引擎会比我的功能更快。尽管如此,它更容易理解,我将编辑我的答案。因为浏览器不理解
:选中的
,所以jQuery必须自己做,这很慢。添加一个额外的布尔检查要快得多。@lonesomeday
:checked
是一个普通的CSS选择器,而不是jQuery扩展。@Esailija确实是我的错误。尽管如此,它在IET中仍然不起作用。在这里使用两个单独的选择器是没有意义的。您也可以执行
输入[type=“checkbox”]:选中:不([disabled])
​$('input[type=checkbox]:checked:not(:disabled)')​