Javascript 如何选择未选中的复选框而不是不确定状态的复选框

Javascript 如何选择未选中的复选框而不是不确定状态的复选框,javascript,jquery,html,checkbox,Javascript,Jquery,Html,Checkbox,我的复选框列表包括选中、未选中和不确定(第三)状态。对于那些想知道的人,我使用jQuery为一些复选框设置不确定状态。最后,我希望使用jQuery查找并选择所有未检查状态的复选框,而不是不确定状态的复选框 这是我的复选框 <div id="list"> <input id="item-1" type="checkbox"> <input id="item-2" type="checkbox"> <input id="item-3"

我的复选框列表包括选中、未选中和不确定(第三)状态。对于那些想知道的人,我使用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
也将返回状态不确定的项目

我也尝试了以下方法,但得到了
不支持的伪:不确定(…)

那么,如何只选择未选中的项而不选择不确定的项呢


提前感谢。

您可以在不确定属性上使用筛选器

$("[type=checkbox]:not(:checked)")
  .filter(function () { return !this.indeterminate; });

老问题,但我遇到了它,所以我想我会更新。与Victory建议的在过滤器下使用单独的函数不同,这可以通过简单地扩展选择器来处理,如下所示:

$("[type=checkbox]:not(:checked):not(:indeterminate)")

在我看来,symantec for复选框是开还是关,第三种状态既不是预期的,也不是真正支持的。为什么不使用带有Yes/No/not-Survey或类似易于处理和理解的单选按钮呢?嗨@JECarterII,不幸的是,单选按钮不适用于我们当前的UI。所以我们被复选框所束缚。我可以问一下它们是如何“不起作用”的吗?是因为没有空间,所以不能有多个单选按钮吗?因为看起来很明智,复选框和单选按钮之间没有区别,只要它们的样式相同。我已经更新了我的答案,为您的用例添加了js提琴和更精确的语义。并添加jsfiddle.Hi@junkfoodjunkie,它不工作是因为空间,这也会影响外观。简而言之,每个复选框代表一个集合。如果所有项目都在该集合中,则显示复选框。如果不是所有项目都在其中,则显示“不确定”。该集合中没有项目,请不要选中。
$("[type=checkbox]:not(:checked):not(:indeterminate)")