jQuery - 使用给定的Id值计算已选中复选框的数量

时间:2014-06-29 17:10:44

标签: javascript jquery

我有一个页面,上面有一张桌子。表中的两列是复选框列。每个都有不同的Id值。我试图通过jQuery计算表格中的行数,其中一个复选框列(其ID值为' InChecklist')被选中。我的JS函数如下所示:

function UpdateCount() {
    var totalRows = $('#checklistTable tbody tr:visible').length;
    var totalSeen = $(":input#InChecklist[checked='checked']").length;
    $("#rowCount").text(totalRows.toString() + " species / " + totalSeen + " seen")
}

总行数很好。但我不能让所见的语法正确,因为我无法正确计算它(值总是为零)。如果我删除' #InChecklist',我会得到一个大于零的值,但在这种情况下,它会计算两个复选框列中检查的总数,而不是Id为&的那个#39; InChecklist'

如果有帮助,我的HTML呈现复选框的部分如下所示。这是MVC5。

        <td>
            <input id="InChecklist" name="item.HasBeenSeenChecklist" type="checkbox" value="true" /><input name="item.HasBeenSeenChecklist" type="hidden" value="false" />
        </td>
        <td>
            <input id="InLifelist" name="item.HasBeenSeenLifelist" type="checkbox" value="true" /><input name="item.HasBeenSeenLifelist" type="hidden" value="false" />
        </td>

2 个答案:

答案 0 :(得分:3)

在:输入之前指定ID

var totalSeen = $("#InChecklist:input[checked='checked']").length;

修改

var totalSeen = $("input#InChecklist:checked").length;

答案 1 :(得分:0)

<强>编辑:

你可以尝试:

var totalSeen = $("#InChecklist input:checked").length;

选择#InChecklist

的所有子输入

或者你可以使用它:

var totalSeen=0;
$("#InChecklist input").each(function(){
    if($(this).is('checked')){
        totalSeen++;
    }
});