我有一个页面,上面有一张桌子。表中的两列是复选框列。每个都有不同的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>
答案 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++;
}
});