首页 > 解决方案 > 如果条件没有检测到空语句js

问题描述

我对这个脚本中的问题感到非常恼火:

exercices.forEach(function(element){
if(i<parseInt(nb_exercices)){

    $.ajax({
        type : "POST",
        url : "ajax/getExercice.php",
        data:{id:element["exercice_id"]},
        success : function(data){
            data = JSON.parse(data) 

            if(data["categorie"] == "1"){
                if(!modal.find(".cmodal-content").find(".cmodal-body").find("div.middle").find("ul").hasClass("full")){

                        modal.find(".cmodal-content").find(".cmodal-body").find("div.middle").find("ul").append(`
                            <li><a href="exercices/`+data["exercice_id"]+`" target="_blank">`+data["name"]+`</a></li>
                            <div>Nb séries : `+element["nb_series"]+`, Nb répétitions : `+element["nb_repetitions"]+` - Charge : `+element["charge"]+` `+element["unit"]+`</div>
                        `)
                }else{
                    modal.find(".cmodal-content").find(".cmodal-body").find("div.middle").find("ul").removeClass("full")
                    modal.find(".cmodal-content").find(".cmodal-body").find("div.middle").find("ul").append(`
                            <li><a href="exercices/`+data["exercice_id"]+`" target="_blank">`+data["name"]+`</a></li>
                            <div>Nb séries : `+element["nb_series"]+`, Nb répétitions : `+element["nb_repetitions"]+` - Charge : `+element["charge"]+` `+element["unit"]+`</div>
                        `)
                }
            }else{
                console.log(data)
                console.log(element)
                if(element["charge"] == null){
                    if(!modal.find(".cmodal-content").find(".cmodal-body").find("div.middle").find("ul").hasClass("full")){
                        modal.find(".cmodal-content").find(".cmodal-body").find("div.middle").find("ul").append(`
                                <li><a href="exercices/`+data["exercice_id"]+`" target="_blank">`+data["name"]+`</a></li>
                                <div>Nb séries : `+element["nb_series"]+`, Nb répétitions : `+element["nb_repetitions"]+` - 

                                    <form class="charge_form form-inline" method="post" action="">
                                        <div class="form-group mb-2">
                                            <label for="charge" class="mr-1">Charge : </label>
                                            <input type="number" min="0" class="form-control col-md-3" name="charge" placeholder="">
                                            <input type="hidden" name="exercice_id" value="`+data["exercice_id"]+`" />
                                            <input type="hidden" name="nex_training" value="`+exercices.indexOf(element)+`" />
                                            <input type="hidden" name="training_id" value=`+training_id+` />
                                            <input type="submit" class="btn btn-primary little-button" name="charge_submit" value="OK">
                                        </div>
                                    </form>
                                <div>`)

                    }else{
                        modal.find(".cmodal-content").find(".cmodal-body").find("div.middle").find("ul").removeClass("full")
                        modal.find(".cmodal-content").find(".cmodal-body").find("div.middle").find("ul").append(`
                                <li><a href="exercices/`+data["exercice_id"]+`" target="_blank">`+data["name"]+`</a></li>
                                <div>Nb séries : `+element["nb_series"]+`, Nb répétitions : `+element["nb_repetitions"]+` - 
                                    Charge : `+element["charge"]+` `+element["unit"]+`</div>
                                <div>`)

                    }

                }else{

                    if(!modal.find(".cmodal-content").find(".cmodal-body").find("div.middle").find("ul").hasClass("full")){

                        modal.find(".cmodal-content").find(".cmodal-body").find("div.middle").find("ul").append(`
                            <li><a href="exercices/`+data["exercice_id"]+`" target="_blank">`+data["name"]+`</a></li>
                            <div>Nb séries : `+element["nb_series"]+`, Nb répétitions : `+element["nb_repetitions"]+` - Charge : `+element["charge"]+` `+element["unit"]+`</div>
                        `)
                    }else{
                        modal.find(".cmodal-content").find(".cmodal-body").find("div.middle").find("ul").removeClass("full")
                        modal.find(".cmodal-content").find(".cmodal-body").find("div.middle").find("ul").append(`
                                <li><a href="exercices/`+data["exercice_id"]+`" target="_blank">`+data["name"]+`</a></li>
                                <div>Nb séries : `+element["nb_series"]+`, Nb répétitions : `+element["nb_repetitions"]+` - Charge : `+element["charge"]+` `+element["unit"]+`</div>
                            `)
                    }

                }
            }
        }

    });
    i++;
}else{
    i = parseInt(nb_exercices)
}
});

每个元素都具有这种预期的格式:

charge: null
exercice_id: "27"
nb_repetitions: 3
nb_series: 6
unit: "kg"

问题来了:

if(element["charge"] == null)

电荷为的第一个元素null进入else而不是进入if

这个问题的结果:在此处输入图像描述

代替 :在此处输入图像描述

我不知道如何解决。你能帮助我吗?

标签: javascripthtmlforeachnull

解决方案


我认为这不是if(element["charge"] == null){导致问题的原因,而是该问题if内部的陈述。请注意,如果element["charge"] == null为真但!modal.find(".cmodal-content").find(".cmodal-body").find("div.middle").find("ul").hasClass("full")为假,您将达到包含

Charge : `+element["charge"]+` `+element["unit"]+`</div>

产生不受欢迎的Charge : null kg


推荐阅读