Javascript 嵌套的JS if语句工作不正常

Javascript 嵌套的JS if语句工作不正常,javascript,jquery,click,counter,nested-if,Javascript,Jquery,Click,Counter,Nested If,我正在使用计数器在每次单击时显示适当的信息,但我无法让按钮在单击后工作。我相信我添加到我的计数器是正确的,但由于某些原因,它没有正确注册。如有任何修改,将不胜感激 $(文档).on(“单击“,”.proceedBtn”,函数(){ $i=0; $i=$i+1; 如果($i==1){ 如果($i==2){ $(“#billingQuestions”).hide(); $(“#billingQuestions2')。隐藏(); $(“#无问题”).hide(); $(“#无问题2”).hide()

我正在使用计数器在每次单击时显示适当的信息,但我无法让按钮在单击后工作。我相信我添加到我的计数器是正确的,但由于某些原因,它没有正确注册。如有任何修改,将不胜感激

$(文档).on(“单击“,”.proceedBtn”,函数(){
$i=0;
$i=$i+1;
如果($i==1){
如果($i==2){
$(“#billingQuestions”).hide();
$(“#billingQuestions2')。隐藏();
$(“#无问题”).hide();
$(“#无问题2”).hide();
$('#paymentInfo').show();
$('#paymentInfo2').show();
$('.arrow').css('left','84%');
控制台日志(“付款”);
返回;
} 
$(“#无问题”).show();
$(“#无问题2”).show();
$(“#billingQuestions”).hide();
$(“#billingQuestions2')。隐藏();
$('#paymentInfo').hide();
$('#paymentInfo2').hide();
$('.arrow').css('left','50%);
$i++;
控制台日志(“装运”);
返回;
}       

});当您单击时,$i变量始终为0,因此当您使$i+1之和始终为1时


除此之外,您的页面中有很多ID,您不能为要隐藏和显示的元素使用类吗?检查页面结构,您可以优化html及其类/ID

记住,函数中的所有内容都是在每次单击后执行的

$(document).on("click", ".proceedBtn", function() {
    $i = 0;              // On every click $i is reset to 0
    $i = $i + 1;         // Now $i == 1
    if ($i == 1) {       // So this condition is always true
        if ($i == 2) {   // And this condition is always false
            ...          // That's why this part is never executed
        }
    }
}
您可能需要的是:

$i = 0;
$(document).on("click", ".proceedBtn", function() {
    $i = $i + 1;
    if ($i == 1){
        $('#noQuestions').show();
        $('#noQuestions2').show();
        $('#billingQuestions').hide();
        $('#billingQuestions2').hide();
        $('#paymentInfo').hide();
        $('#paymentInfo2').hide();
        $('.arrow').css('left', '50%');
        console.log("shipping");
    }       
    else if ($i == 2){
        $('#billingQuestions').hide();
        $('#billingQuestions2').hide();
        $('#noQuestions').hide();
        $('#noQuestions2').hide();
        $('#paymentInfo').show();
        $('#paymentInfo2').show();
        $('.arrow').css('left', '84%');
        console.log("payment");
    } 
});

$i=0$i=$i+1$
。这不是PHP。但是,如果您查看代码,首先将
$i
设置为
0
。然后立即将其递增到
1
。在执行任何其他操作之前,先检查该值是否真的为
2
。它将如何到达
2
?感谢所有有用的评论大家,仍然是JS的初学者,感谢回复。