【问题标题】:jQuery - Count number of checked checkboxes with a given Id valuejQuery - 计算具有给定 Id 值的选中复选框的数量
【发布时间】:2014-06-29 17:10:43
【问题描述】:

我有一个带有表格的页面。表中的两列是复选框列。每个都有不同的 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 为“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>

【问题讨论】:

  • 根据您的选择器,totalSeen 将根据其选中的属性为 1 或 0,仅此而已...
  • @DavidThomas - 我更新了我的帖子。这有帮助吗?
  • @DavidThomas - 我现在显示渲染的 HTML。一开始就应该这样做 - 抱歉。

标签: javascript jquery


【解决方案1】:

像这样在 :input 之前指定 ID

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

编辑

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

【讨论】:

  • 是的,现在还为时过早。应该是 $("input#InChecklist:checked").length
【解决方案2】:

已编辑:

你可以试试:

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

选择#InChecklist的所有子输入

或者你可以使用这个:

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

【讨论】:

  • 生成一个“未定义”-(473 种 / 未定义)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-14
  • 1970-01-01
  • 1970-01-01
  • 2011-07-01
  • 1970-01-01
  • 2013-06-07
相关资源
最近更新 更多