我有一个复选框列表:

<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" />

我可以收集所有选中复选框的值;我的问题是如何获得未选中复选框的所有值?我试着:

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

来获得一个未选中的复选框的值,但我得到:

语法错误,无法识别的表达式:未选中。

有人能解释一下这个问题吗? 谢谢你!


当前回答

也可以用纯js以这样的方式实现:

var matches = document.querySelectorAll('input[type="checkbox"]:not(:checked)');

其他回答

$("input:checkbox:not(:checked)")将为您提供未选中的复选框。

也可以用纯js以这样的方式实现:

var matches = document.querySelectorAll('input[type="checkbox"]:not(:checked)');

正如错误消息所述,jQuery不包括:unchecked选择器。 相反,你需要反转:checked选择器:

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

你可以通过扩展jquery的功能来做到这一点。这将缩短您必须为选择器编写的文本量。

$.extend($.expr[':'], {
        unchecked: function (obj) {
            return ((obj.type == 'checkbox' || obj.type == 'radio') && !$(obj).is(':checked'));
        }
    }
);

然后你可以使用$("input:unchecked")来获取所有选中的复选框和单选按钮。

$(".clscss-row").each(function () {
if ($(this).find(".po-checkbox").not(":checked")) {
               // enter your code here
            } });