仅使用javascript获取未选中的复选框

时间:2018-10-02 23:02:12

标签: javascript

我可以通过以下方式获得所有选中的复选框:

document.querySelectorAll('input[type=checkbox]:checked')

是否可以获取未选中的框?

2 个答案:

答案 0 :(得分:3)

您可以将not伪选择器与checked结合使用:

console.log(
  document.querySelectorAll('input[type=checkbox]:not(:checked)').length
);
<input type="checkbox">
<input type="checkbox">
<input type="checkbox">
<input type="checkbox" checked>
<input type="checkbox" checked>

答案 1 :(得分:1)

我遇到了同样的问题,并试图找出如何在我的代码中使用它-查找多种情况的选中/未选中/ Jquery /非Jquery。我不是JavaScript忍者-所以最后,它有点令人费解,但是我编写了自己的小例程。我使用以下方法撤回了一切

`var formData = $(':input');`

这拉回所有输入选中/未选中/文本/选择-一切。结果是存储在变量“ formData”中的对象数组。

对于数组,它具有诸如长度/值等有用的东西,我可以对其进行迭代并查找结果。

 `for( var i = 0; i < formData.length; i++){
        if(formData[i].type === "checkbox"){
            inputName = formData[i].name.toUpperCase();
            inputValue = formData[i].checked === true ? "1" : "0" ;
 `

您甚至可以使用如下一行来跳过按钮等所有其他输入:

`if( (inputs[i].nodeName === "INPUT" || inputs[i].nodeName === "SELECT") && inputs[i].type != "hidden" ){ `

就像我说的那样-令人费解-但它对我有用-在图书馆中我只需要编写一次.....我相信那里的纯粹主义者会把我拉起来-但是正如我所说-“对我有用”

如果您需要更多说明,请告诉我。

希望这会有所帮助。