我可以通过以下方式获得所有选中的复选框:
document.querySelectorAll('input[type=checkbox]:checked')
是否可以获取未选中的框?
答案 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" ){ `
就像我说的那样-令人费解-但它对我有用-在图书馆中我只需要编写一次.....我相信那里的纯粹主义者会把我拉起来-但是正如我所说-“对我有用”
如果您需要更多说明,请告诉我。
希望这会有所帮助。