Jquery 选中并取消选中复选框并读取其状态

Jquery 选中并取消选中复选框并读取其状态,jquery,checkbox,jquery-click-event,Jquery,Checkbox,Jquery Click Event,如何读取复选框的状态并将其状态设置为可见?我正在尝试这样的事情,但它总是返回真的: $('.show-check').live('click', function(e) { e.preventDefault(); var checked = ($(this).is(':checked')); if(checked == true){ $(this).attr('checked', true); } else{ $(thi

如何读取复选框的状态并将其状态设置为可见?我正在尝试这样的事情,但它总是返回真的:

 $('.show-check').live('click', function(e) {
    e.preventDefault();

    var checked = ($(this).is(':checked'));
    if(checked == true){
       $(this).attr('checked', true); 
    }
    else{
        $(this).attr('checked', false);
    }
 });


    <li>
        <img src="" class="show-image"/>
        <span class="show-title"></span>
        <input type="checkbox" class="show-check" />
    </li>
$('.show check').live('click',函数(e){
e、 预防默认值();
var checked=($(this).is(':checked');
如果(选中==true){
$(this.attr('checked',true);
}
否则{
$(this.attr('checked',false);
}
});
  • 它是这样工作的:

     $('.show-check').live('click', function() {
    
    
    var checked = ($(this).is(':checked'));
    
    if(checked){
       $(this).attr('checked', true);
    }
    else{
        $(this).attr('checked', false);
    }
    
    }))

    我认为您无法选中该复选框,因为默认操作被阻止,即选中/取消选中该复选框

    以下是我的想法:

  • 复选框最初未选中

  • 当您单击复选框时,将触发click事件,并且
    var checked
    设置为true

  • 由于设置为true,因此将始终执行
    if(checked)

  • 但您可能想知道为什么在UI上没有选中复选框。我认为这是因为您设置了
    e.preventDefault()
    ,它告诉复选框不受单击事件的默认行为的影响,即选中它

  • 下次再检查时,同样的事情也会发生


  • 如果使用.change()事件而不是.clecked()事件,这可能会更清楚


    您的意思是,当单击复选框时,如果选中==true,则设置为checked=true,因此如果您从选中开始,则不会执行false部分。如果开始时将复选框设置为false,情况也是如此。

    这看起来像是您看到了复选框是否已选中,如果已选中,则您正在…检查它?嗯…您到底想完成什么?一旦选中复选框,它就必须永远保持选中状态?我是否必须重新加载父容器的html才能看到结果?我仍然在控制台上记录“true”值的空复选框。您何时检查空复选框的值?