【发布时间】: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