Javascript jQuery-取消选中复选框

Javascript jQuery-取消选中复选框,javascript,jquery,html,checkbox,Javascript,Jquery,Html,Checkbox,我以为这应该很容易。这里有很多关于使用jQuery取消选中复选框的答案,但是当我尝试它们时,它们似乎不起作用。作为重置表单功能的一部分,我想取消选中它们 我有一个循环,并在其中创建复选框: 以下是取消选中复选框的“我的代码”(并非所有复选框最初都选中): 我还尝试用prop替换attr。我也尝试过只使用$(输入:checkbox).prop('checked',false)。我试过其他的,但都不管用。我遗漏了什么?它确实有用: 确保在加载DOM后运行javascript。您不需要使用each(

我以为这应该很容易。这里有很多关于使用jQuery取消选中复选框的答案,但是当我尝试它们时,它们似乎不起作用。作为重置表单功能的一部分,我想取消选中它们

我有一个循环,并在其中创建复选框:

以下是取消选中复选框的“我的代码”(并非所有复选框最初都选中):

我还尝试用
prop
替换
attr
。我也尝试过只使用
$(输入:checkbox).prop('checked',false)。我试过其他的,但都不管用。我遗漏了什么?

它确实有用:


确保在加载DOM后运行javascript。

您不需要使用
each()
。你可以像下面这样做

$('input:checkbox:checked').prop('checked', false);

不需要循环,只需一行代码即可实现:使用
$(“:checked”).attr('checked',false)

$(文档).ready(函数(){
$(“:checked”).attr('checked',false);
});

最好对动态元素应用唯一的类名,以便使用此类名选择所有元素。因此,在生成时,可以使用类名附加复选框

...append('<input type="checkbox" name="is_chosen[]" value="1" class="flat dynmc-check">');
使用此选择器可以执行所需的操作,例如重置复选框:

$('.dynmc-check').removeAttr('checked');
或者数一数被选中的:

var checkCount = $('.dynmc-check:checked').length;

有关详细信息,请参阅。

很抱歉给大家带来不便


我发现问题出在
class=“flat”
(来自Bootstrap),尽管我不知道确切原因。我开始担心,因为你的答案都不起作用。然后我想把这个班撤掉。当类存在时,所有选中的复选框在执行函数后仍然被选中。当我删除该类时,在执行该函数后,复选框变为未选中状态。我又试了一遍你的答案,结果都成功了。我也尝试了我发布的代码,它成功了。所以它一直都是类。

它应该
$(输入:checkbox)。prop('checked',false)。如果不起作用,请检查
$(输入:复选框)
选择的内容。检查演示,希望它能帮助:)你不需要循环。只需使用$(“:checked”).attr('checked',false);在我的回答中,我很抱歉给大家带来不便。我发现问题出在
class=“flat”
(来自Bootstrap),尽管我不知道确切原因。我开始担心,因为你的答案都不起作用。然后我想把这个班撤掉。当类存在时,所有选中的复选框在执行函数后仍然被选中。当我删除该类时,在执行该函数后,复选框变为未选中状态。我又试了一遍你的答案,结果都成功了。我也尝试了我发布的代码,它成功了。(顺便说一句,我是否必须将此作为答案发布?)此处不需要循环,因为它可以使用$(“:checked”).attr('checked',false)完成;尽管@ArunSharma,循环与否几乎不是问题。这回答了问题。@Mackan这不仅仅是回答问题。你的代码必须干净、清晰、切中要害。setInterval和.在这里都是无用的代码块。如果他为了stackOverflow而将代码清理到这些行,但在他的应用程序中需要forEach逻辑,该怎么办?这仍然是100%有效的。@ArunSharma我同意,但最重要的是回答这个问题,而你和另一个答案都没有做到。使用.attr()函数对我不起作用,但是.prop()函数对我起作用
$('.dynmc-check')
$('.dynmc-check').removeAttr('checked');
var checkCount = $('.dynmc-check:checked').length;