【问题标题】:if condition doesn't detect null statement js如果条件没有检测到空语句js
【发布时间】:2018-07-16 16:23:05
【问题描述】:

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

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

这个问题的结果:

而不是:

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

【问题讨论】:

  • 如果你能把它减少到Minimal, Complete, and Verifiable example就好了。因为它很难阅读和重现您的问题
  • @MarkMeyer 我会做的
  • 确定这就是data,而不是charge: 'null'(即“null”作为字符串)?你试过console.log(JSON.stringify(data));吗?
  • 请注意,您在此处显示的代码实际上并不包含与 if(element["charge"] == null) 关联的 else。它的外壳条件是if(!modal.find(".cmodal-content").find(".cmodal-body").find("div.middle").find("ul").hasClass("full")),这可能是你的问题
  • 这不是空字符串,这是php存储在json中的空形式

标签: javascript html foreach null


【解决方案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

【讨论】:

  • 我只是没抄好剧本
猜你喜欢
  • 2014-01-14
  • 2017-08-29
  • 2021-11-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-01
相关资源
最近更新 更多