Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用&&;检查复选框是否为“时,在jquery中使用运算符”;勾选“;_Jquery_Checkbox - Fatal编程技术网

使用&&;检查复选框是否为“时,在jquery中使用运算符”;勾选“;

使用&&;检查复选框是否为“时,在jquery中使用运算符”;勾选“;,jquery,checkbox,Jquery,Checkbox,所以基本上我要做的是,当复选框被选中时,如果它有一个特定的类,就会出现一系列的元素。但仅当选中复选框时 以下是单个复选框和类的代码: $('#arcuate').change(function() { if ($('#arcuate').checked == true && $('.card').hasClass('arcuate') ) { $('.card').addClass('reveal') } else { $('.card').removeC

所以基本上我要做的是,当复选框被选中时,如果它有一个特定的类,就会出现一系列的元素。但仅当选中复选框时

以下是单个复选框和类的代码:

$('#arcuate').change(function() {
  if ($('#arcuate').checked == true && $('.card').hasClass('arcuate') ) {
    $('.card').addClass('reveal')
  } else {
    $('.card').removeClass('reveal')
  }
});
没有选中
属性;DOM复选框元素做什么。所以

if ($("#arcuate").prop("checked") && ...

我将使用第一个元素,如果没有
#arcasate
元素,它将返回
undefined
(而其他两个元素将抛出错误)


旁注:

  • $('.card').hasClass(…)
    将只检查匹配
    .card
    第一个元素是否具有类,但
    $('.card').addClass(…)
    $('.card').removeClass(…)
    将从所有匹配元素中添加/删除该类。(也许这就是你想要的,但我想我会把它标出来。)

  • ==true
    在条件中从来都不是必需的

  • toggleClass
    可以使代码更简洁:

  • $('#弧形')。更改(函数(){
    变量卡=$(“.card”);
    cards.toggleClass(“显示”)、$(“#弓形”).prop(“选中”)和&cards.hasClass(“弓形”);
    });
    
    或者,如果您想单独切换每张卡:

    $('#arcuate').change(function() {
        var checked = $('#arcuate').prop("checked");
        $('.card').each(function() {
            var $this = $(this);
            $this.toggleClass("reveal", checked && $this.hasClass('arcuate'));
        });
    });
    

    成功了,谢谢。是这一点和html混合的结果。谢谢你的帮助。
    if (document.getElementById("arcuate").checked && ...
    
    $('#arcuate').change(function() {
        var checked = $('#arcuate').prop("checked");
        $('.card').each(function() {
            var $this = $(this);
            $this.toggleClass("reveal", checked && $this.hasClass('arcuate'));
        });
    });