【问题标题】:Unchecking a class of checkbox取消选中一类复选框
【发布时间】:2018-07-12 03:50:05
【问题描述】:

所以我有这个 JQuery 打算取消选中特定类别的复选框:

$('.boringassclassname_class').prop('checked', false);

根据需要 MVE 的人的要求,我有这个复选框:

<input type="checkbox" id="whocares" name="doesntmatter" class="boringassclassname_class"> 

我在另一个复选框的 onchange 中触发它,但它什么也没做。复选框类不会取消选中。没有例外。

这是 jquery 1.8.3,所以我不需要为此使用 attr。我尝试使用

$('.boringassclassname_class').each(function() { ($this).prop('checked', false) }) 

但这会引发 $this 未定义的错误。类选择器肯定不是未定义的,因为 show() 和 hide() 在它上面工作得很好。

我尝试研究质量选择器和执行器,但在我的搜索中没有任何结果可以将其应用于某个类。那么如何取消选中一类复选框呢?

【问题讨论】:

  • 请在您的问题中发布minimal reproducible example。另外,复选框的类没有取消选中是什么意思?
  • 写成 $('.{$id}_class').each(function() { $(this).prop('checked', false) })
  • 我添加了您的最小、完整和可验证的示例复选框。我所说的复选框类没有取消选中的意思是有一类复选框被选中,并且这个预期取消选中复选框类的函数不会取消选中复选框类。如果您需要进一步的解释,请告诉我!检查 $(this) 而不是 ($this)。谢谢!
  • {$id} 是否被某种模板代码取代?因为这不是一个很好的类名......
  • 这是一个占位符,为了清楚起见,我重命名了它。

标签: javascript jquery checkbox


【解决方案1】:

写 $(this) 而不是 ($this)

$('.{$id}_class').each(function() { $(this).prop('checked', false) }) 

【讨论】:

  • 或者干脆不使用jquery。 this.checked = false。不需要具有此属性访问权限的 jQuery。或者只是$('.{$id}_class').prop('checked', false),因为每个都是不必要的。 prop 会做一个迭代器
  • Taplar,知道有什么好笑的吗?如果我 ctrl+F 您键入的代码,它实际上会选择我的非功能代码作为与您的完全相同的匹配!不过这让我很难过。 :(
  • 所以我尝试了每个迭代器,你是对的 - 它是 $(this) 而不是 ($this)!然而,尽管隐藏复选框工作(独立以确保隐藏不会破坏取消选中),但取消选中它不起作用。 :(
【解决方案2】:

您不必使用 each。 prop() 对结果堆栈进行隐式迭代。

$('.ARTReason_1_AbnormSpermParams_AzoospermiaObs_PriorVasectomy_class').prop('checked', false);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="checkbox" id="whocares" name="doesntmatter" class="ARTReason_1_AbnormSpermParams_AzoospermiaObs_PriorVasectomy_class" checked>
<input type="checkbox" id="whocares" name="doesntmatter" class="ARTReason_1_AbnormSpermParams_AzoospermiaObs_PriorVasectomy_class" checked> 
<input type="checkbox" id="whocares" name="doesntmatter" class="ARTReason_1_AbnormSpermParams_AzoospermiaObs_PriorVasectomy_class" checked>

【讨论】:

  • @Kwahn 所以是的,你不需要每个。 prop() 在结果堆栈上执行一个隐式的 each。
  • 更新了我的答案以使用确切的类名。工作正常。 @Kwahn
  • 这意味着不是我的代码错了——而是系统!因此我有一个怀疑,但它需要对系统架构师大喊大叫才能提取出事情的真相。我会尽快解开这个谜团。到目前为止,您帮助我赢得了荣誉。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-14
  • 2014-05-20
  • 2018-04-15
  • 2021-12-23
  • 1970-01-01
相关资源
最近更新 更多