我的复选框列表包括已选中,未选中和不确定(第三)状态。对于那些想知道的人,我使用jQuery为某些复选框设置不确定状态。最后,我想找到并选择所有具有未选中状态的复选框,但不使用jQuery选择不确定状态。
这是我的复选框
<div id="list">
<input id="item-1" type="checkbox">
<input id="item-2" type="checkbox">
<input id="item-3" type="checkbox">
<!-- and so on -->
</div>
我可以使用以下
获取已检查的var checkedItems = $("#list").find("input:checkbox:checked");
我也可以通过以下
取消所有操作var uncheckedItems = $("#list").find("input:checkbox:not(:checked)");
但是,uncheckedItems
也会返回具有不确定状态的项目。
我也尝试了以下内容,但我得到了unsupported pseudo: indeterminate(…)
var uncheckedItems = $("#list").find("input:checkbox:not(:checked):not(:indeterminate)");
那么我如何选择未经检查的项目而不选择不确定的项目呢?
提前谢谢。
答案 0 :(得分:3)
您可以在不确定属性
上使用过滤器$("[type=checkbox]:not(:checked)")
.filter(function () { return !this.indeterminate; });
答案 1 :(得分:0)
老问题,但我遇到了它,所以我想我会更新。而不是像Victory建议的那样在过滤器下使用单独的函数,可以通过简单地扩展选择器来处理:
$("[type=checkbox]:not(:checked):not(:indeterminate)")