是否选中jQuery复选框的问题

是否选中jQuery复选框的问题,jquery,Jquery,我正试图通过选中并取消选中以下脚本下面的复选框来更改div的css dispaly属性: <td> <input type="checkbox" id="c1" name="cc" /> <label for="c1"> <span> </span> Display : None </label> <input type="checkbox" id="c2" name="cc" /> <lab

我正试图通过选中并取消选中以下脚本下面的复选框来更改div的css dispaly属性:

<td>
 <input type="checkbox" id="c1" name="cc" />
 <label for="c1"> <span> </span>  Display : None  </label>
 <input type="checkbox" id="c2" name="cc" /> 
 <label for="c2"><span> </span> Display : Inline   </label>
</td>
如您所见,我有两个复选框,我想在选中或取消选中第二个复选框时显示一个隐藏的div


您能告诉我为什么这不起作用吗?

语法错误-其他一切正常:

我在这里看到了一些问题

  • 如注释中所述,您有语法错误
  • 您的逻辑意味着c1和c2值是互斥的,因此您确实应该为此使用
    radio
    输入
  • attr()
    不是检查输入是否已检查的好方法。改用
    prop()
    。请参见jQuery文档了解差异

  • 下面是一个简化的

    您的代码存在一些sintax问题
    attr()
    方法不能很好地获取值并进行所需的测试。相反,您可以使用
    is()
    方法,检查
    是否已选中
    项目,如果为true。尝试这样做:

    $('input:checkbox').change(function(){
       $('#hiddendiv').css("display", $('#c2').is(':checked') ? "block" : "none"); 
    });  
    
    PS:如果您想在更改事件中获取
    发送者(复选框已更改),可以通过
    $(此)
    获取。您应该使用.prop()而不是.attr()

    工作示例


    “chekbox”的拼写有问题吗?语法错误,意外标记“;”你不应该使用
    无线电
    输入吗?@Tim,谢谢我修复了拼写错误,但仍然不工作。我找到了错误。谢谢JSess,但我如何使用切换功能取消选中其他(未选中)框?如您所见,用户是否可以选择这两个框?如何防止这种情况发生?您可以将它们更改为每个()之间具有相同名称的单选按钮,或者在选择另一个复选框时使用jQuery删除选中的属性。您好,伊利亚G,谢谢您的评论,但我如何在复选框中使用它?谢谢VID,但我如何使用切换功能取消选中另一个(未选中)复选框?如您所见,用户是否可以选择这两个框?我们如何防止这种情况发生?谢谢,这很完美,但你能告诉我你是怎么做到的吗?我的意思是在这行
    $('input:checkbox')。不是(this).prop('checked',false)thanks@user1760110要分解它,首先它会查找所有复选框
    $('input:checkbox')
    ,然后它会细化搜索所有不是“单击”的复选框
    。不是(此)
    ,最后它会通过此
    取消所有复选框的检查。prop('checked',false)
    有意义吗?
    $('input:checkbox').change(function(){
      if($('#c2').attr('checked')){
        $('#hiddendiv').css("display", "block"); 
       }else{
        $('#hiddendiv').css("display", "none"); 
      }
    }); ​
    
    $('input:checkbox').change(function(){
       $('#hiddendiv').css("display", $('#c2').is(':checked') ? "block" : "none"); 
    });  
    
    $('input:checkbox').change(function() {
    
        $('input:checkbox').not(this).prop('checked', false);
    
        if ($('#c2').prop('checked')) {
            $('#hiddendiv').css({"display" : "block"});
       } else {
            $('#hiddendiv').css({"display" : "none"});
        }
    
    });