【问题标题】:Javascript count checked checkbox and not count another checkboxJavascript计算选中的复选框而不计算另一个复选框
【发布时间】:2016-03-16 20:43:09
【问题描述】:

我试图让 JavaScript 计算一组复选框,而不是计算一组复选框。

现在我有以下 JavaScript 代码:

function updateCount {
    var count = $("input[type=checkbox]:checked").size();
    $("#count").text(count);    
};
});

这是我的复选框:

<input type="checkbox" name="checkbox_1">Checkbox 1
<input type="checkbox" name="checkbox_2">Checkbox 2

所以基本上我的 JavaScript 有办法只计算第一个复选框而不计算第二个复选框。

【问题讨论】:

  • 您的代码不完整。你如何调用你的updateCount 函数,你有一个额外的});。您还应该使用.length 而不是.size()
  • 你应该使用.length,而不是size()。见this answer
  • 如果只计算第一个复选框,结果总是一个?不知道你的意思...
  • @Ionian316 size() 在这种情况下是 jQuery 对象的一个​​完全有效的方法,尽管我同意,长度是更好的做法。
  • 您是在问如何计算选中了多少个复选框?或者您是在问如何从整个复选框组中计算一组复选框(给定其他条件)?

标签: javascript jquery checkbox


【解决方案1】:

如果您能够修改复选框的 HTML,我会使用一个类对它们进行分组。

<input class="countThis" type="checkbox" name="checkbox_1">Checkbox 1
<input class="countThis" type="checkbox" name="checkbox_2">Checkbox 2

只要你不想计算任何东西,就把这门课去掉

<input type="checkbox" name="checkbox_3">Checkbox 3
<input type="checkbox" name="checkbox_4">Checkbox 4

最后,你的函数看起来像这样

function updateCount {
    var count = $(".countThis:checked").size();
    $("#count").text(count);    
};

【讨论】:

    【解决方案2】:

    有两种简单的方法可以做到这一点。

    首先,如果您想选择要计数的复选框:

    $('input[type=checkbox][name="checkbox_1"]').length

    其次,如果您想选择要排除的复选框:

    $('input[type=checkbox][name!="checkbox_2"]').length

    【讨论】:

    • idk 在问题不清楚时如何给出答案
    • 我发现这个问题很清楚; Kevin 显然是想弄清楚如何只选择一些复选框,或者避免只选择一些复选框。我提供了两种最简单(尽管可能不是最快)的方法来做到这一点。如果 Kevin 的计划比他说的更复杂,那么他可以在这里要求澄清,但我概述的两个策略将是他想要使用的策略,无论他的选择器最终有多复杂。
    • 在不知道 op 想要使用什么标准来区分要选择和不选择的 chkbx 的情况下,您无法充分回答这个问题。他的问题是:我如何选择一些 chkbxs 而不是其他的?您的答案是:选择您想要的或排除您不想要的。是的,他当然想选择那些他想选择的人,而不是选择其他人。 op想钓一些鱼,所以你说用鱼竿,但你没有要求澄清他想钓什么类型的鱼,这决定了使用什么类型的诱饵。使用什么选择器是他正在寻找的答案。
    【解决方案3】:

    如果您总是只需要第一个元素,您可以使用 :first-of-type 选择器:

    $( "input[type='checkbox']:first-of-type" ).prop({
    checked: true
    });
    

    【讨论】:

      猜你喜欢
      • 2014-10-10
      • 2020-02-17
      • 1970-01-01
      • 1970-01-01
      • 2012-06-10
      • 2012-01-20
      • 2021-10-07
      • 2023-03-09
      • 2023-03-30
      相关资源
      最近更新 更多