【发布时间】:2012-09-03 16:56:26
【问题描述】:
如何找到所有已选中且未禁用的复选框?
【问题讨论】:
标签: jquery jquery-selectors checkbox
如何找到所有已选中且未禁用的复选框?
【问题讨论】:
标签: jquery jquery-selectors checkbox
像这样:
$("input[type='checkbox']:checked").not(":disabled")...
这会查找类型为checkbox 的inputs 字段,这些字段已被选中且未被禁用。如果这不起作用,您应该使用属性检查:
$("input[type='checkbox']:checked").not("[disabled]")...
或者,正如@lonesomeday 敏锐地指出的那样,您可以将它组合成一个选择器:
$("input[type='checkbox']:checked:not(:disabled)")...
我已经整理了一个概念验证in this fiddle。
【讨论】:
input[type="checkbox"]:checked:not([disabled])。
$('input[type="checkbox"]').filter(function() {
return !this.disabled && this.checked;
})
【讨论】:
:checked 并使用过滤器函数!this.disabled && this.checked 会大大提高性能。
:checked,所以jQuery必须自己做,比较慢。添加额外的布尔检查要快得多。
:checked 是一个普通的 CSS 选择器,而不是一个 jQuery 扩展。
$('input[type="checkbox"]:checked').not(":disabled");
这是fiddle
【讨论】:
【讨论】:
$("input[type='checkbox']:checked:enabled") 怎么样?
【讨论】: