如果条件未检测到空语句js

时间:2018-07-16 16:23:05

标签: javascript html foreach null

这个脚本中的问题让我很生气:

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

此问题的结果:enter image description here

代替:enter image description here

我不知道该怎么解决。你能帮我吗?

1 个答案:

答案 0 :(得分:1)

我认为不是引起问题的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