javascript - 如果条件没有检测到空语句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
。
我不知道如何解决。你能帮助我吗?
解决方案
我认为这不是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
。