Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.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
Javascript jqueryif返回总是false_Javascript_Jquery_If Statement_Onclick - Fatal编程技术网

Javascript jqueryif返回总是false

Javascript jqueryif返回总是false,javascript,jquery,if-statement,onclick,Javascript,Jquery,If Statement,Onclick,我这里有两个问题 检查此$isitchecked=$(“#组”+groupnumber)的if返回始终为false,即使类已“选中” 尽管groupnumber仍然只适用于第一组 var progressProcent=0; var-groupnumber=1; $(“#组”+groupnumber+”输入[type=“radio”]”。单击(函数(){ $whatgroup=“#组”+组号; $isitchecked=$(“#组”+groupnumber).hasClass(“选中”); 如

我这里有两个问题

  • 检查此
    $isitchecked=$(“#组”+groupnumber)的if返回始终为false,即使类已“选中”
  • 尽管groupnumber仍然只适用于第一组
  • var progressProcent=0;
    var-groupnumber=1;
    $(“#组”+groupnumber+”输入[type=“radio”]”。单击(函数(){
    $whatgroup=“#组”+组号;
    $isitchecked=$(“#组”+groupnumber).hasClass(“选中”);
    如果($isitchecked){
    }否则{
    progressProcent=progressProcent+2.2727;
    }
    $(“#进度容器”).removeClass(“隐藏”);
    $($whatgroup).addClass(“选中”);
    $(“#进度条”).css('width',progressProcent+'%');
    groupnumber=groupnumber+1;
    });
    
    
    问题1
    
    问题2


    首先执行if语句

    $isitchecked = $('#group' + groupnumber).hasClass("checked");
    
    然后添加“checked”类

    这就是为什么它总是返回false


    另外,您不必使用增量逻辑,您可以使用它来查找单击的收音机。

    首先执行if语句

    $isitchecked = $('#group' + groupnumber).hasClass("checked");
    
    然后添加“checked”类

    这就是为什么它总是返回false

    此外,您不必使用增量逻辑,您可以使用它来查找单击的收音机。

    最简单的方法:-

    progressProcent=0;
    $(“输入[type='radio']”)。在('单击',函数()上){
    if($(this).parent().find('.checked')。长度==0){
    progressProcent=progressProcent+2.2727;
    $(“#进度条”).css('width',progressProcent+'%');
    } 
    $(this.addClass('checked');
    });
    
    
    问题1
    
    问题2

    最简单的方法:-

    progressProcent=0;
    $(“输入[type='radio']”)。在('单击',函数()上){
    if($(this).parent().find('.checked')。长度==0){
    progressProcent=progressProcent+2.2727;
    $(“#进度条”).css('width',progressProcent+'%');
    } 
    $(this.addClass('checked');
    });
    
    
    问题1
    
    问题2

    $('#group1 input[type="radio"]').click(function(){
    
    groupnumber = groupnumber + 1;// doesn't do anything??
    
    这只是将单击事件绑定到
    group1


    即使您通过纠正上述问题来实现它,您也无法保证用户是否按照group1、group2、group3的顺序进行选择


    即使您需要对父组的引用,也最好相对地获取它,而不是使用组号

    $isitchecked = $('#group' + groupnumber).hasClass("checked");
    
    可能是

    $isitchecked = $(this).parent().hasClass("checked");
    
    但同样,jQuery内置了选择器,无需再次实现,并且可能会导致边缘情况和错误


    这里有一个不同的方法来解决这个问题

    用于
    [id^=“group”]

    $('[id^=“group”]输入[type=“radio”]”。单击(函数(){
    选中的变量=$(“输入[type='radio']:选中”)。长度;
    var total=$('fieldset[id^=“group”]')。长度;
    风险百分比=已检查/总计*100;
    $(“#进度条”).css('width',percent+'%');
    });
    
    
    问题1
    
    问题2

    $('#group1 input[type="radio"]').click(function(){
    
    groupnumber = groupnumber + 1;// doesn't do anything??
    
    这只是将单击事件绑定到
    group1


    即使您通过纠正上述问题来实现它,您也无法保证用户是否按照group1、group2、group3的顺序进行选择


    即使您需要对父组的引用,也最好相对地获取它,而不是使用组号

    $isitchecked = $('#group' + groupnumber).hasClass("checked");
    
    可能是

    $isitchecked = $(this).parent().hasClass("checked");
    
    但同样,jQuery内置了选择器,无需再次实现,并且可能会导致边缘情况和错误


    这里有一个不同的方法来解决这个问题

    用于
    [id^=“group”]

    $('[id^=“group”]输入[type=“radio”]”。单击(函数(){
    选中的变量=$(“输入[type='radio']:选中”)。长度;
    var total=$('fieldset[id^=“group”]')。长度;
    风险百分比=已检查/总计*100;
    $(“#进度条”).css('width',percent+'%');
    });
    
    
    问题1
    
    问题2


    在点击事件结束时,您将
    groupnumber
    增加一。它会在将来对不同的id进行单击检查,这就是为什么您总是得到false

    基于我认为您想要实现的目标,您应该这样做(我尝试至少更改您的代码):

    var progressProcent=0;
    //选择字段集中的所有输入(因为所有输入
    //具有测试字段(类)
    $('.测试字段输入[type=“radio”]')。单击(函数(){
    //获取最近的字段集
    $whatgroup=$(this).closest('.testfield');
    $isitchecked=$whatgroup.hasClass(“选中”);
    如果($isitchecked){
    }否则{
    progressProcent=progressProcent+2.2727;
    }
    $(“#进度容器”).removeClass(“隐藏”);
    $whatgroup.addClass(“选中”);
    $(“#进度条”).css('width',progressProcent+'%');
    });
    
    
    问题1