find所有未经检查的checkbox在jQuery中

我有一个checkbox列表:

<input type="checkbox" name="answer" id="id_1' value="1" /> <input type="checkbox" name="answer" id="id_2' value="2" /> ... <input type="checkbox" name="answer" id="id_n' value="n" /> 

我可以收集选中的checkbox的所有值; 我的问题是如何获得未经检查的checkbox的所有值? 我试过了:

 $("input:unchecked").val(); 

得到一个未经检查的checkbox的值,但我得到了:

语法错误,无法识别的expression式:unchecked。

有没有人可以在这个问题上谈一谈? 谢谢!

正如错误消息所述,jQuery不包括:uncheckedselect器。
相反,您需要反转:checkedselect器:

 $("input:checkbox:not(:checked)") 

$("input:checkbox:not(:checked)")会让你未经检查的框。

 $.extend($.expr[':'], { unchecked: function (obj) { return ((obj.type == 'checkbox' || obj.type == 'radio') && !$(obj).is(':checked')); } }); $("input:unchecked") 
 $("input[type='checkbox']:not(:checked):not('\#chkAll\')").map(function () { var a = ""; if (this.name != "chkAll") { a = this.name + "|off"; } return a; }).get().join(); 

这将检索所有未经检查的checkbox,并排除用于检查所有checkbox的“chkAll”checkbox。 因为我想知道我传递给数据库的值是什么,所以我把它们设置为off,因为checkbox给了我一个值。

 //looking for unchecked checkboxes, but don't include the checkbox all that checks or unchecks all checkboxes //.map - Pass each element in the current matched set through a function, producing a new jQuery object containing the return values. //.get - Retrieve the DOM elements matched by the jQuery object. //.join - (javascript) joins the elements of an array into a string, and returns the string.The elements will be separated by a specified separator. The default separator is comma (,). 

你可以这样使用:

 $(":checkbox:not(:checked)")