让我们说我的html中有3个div。 Id是:
我想首先在stepone div上加载来自服务器json的数据,如果返回的是' 1'然后在stepone div上打印好。
然后在steptwo div上加载数据,数据也是json。所以基本上这是一个过程,以下是我的代码:
$(document).ready(function(){
var loadingone = $.post("stepone.php");
.done(function(dataone){
objone = JSON && JSON.parse(dataone) || $.parseJSON(dataone); //get json return from server
if (objone.status == "1") {
$("#stepone").html("good");
var loadingtwo = $.post("steptwo.php")
.done(function(datatwo){
objtwo = JSON && JSON.parse(datatwo) || $.parseJSON(datatwo);
if (objtwo.status == "1"){
$("#steptwo").html("good");
}
else
{
$("#steptwo").html("bad");
}
});
}
else
{
$("#stepone").html("message" + objone.codeurl);
}
});
});
因为您可以看到代码包含嵌套的if语句,并且它看起来不是很清楚。我想知道是否有更好的解决方案吗?谢谢 === UPDATA === 这是我编辑后的代码,是不是?
var loadingone = $.post("stepone.php");
.done(function(dataone){
objone = JSON && JSON.parse(dataone) || $.parseJSON(dataone);
if (objone.status != "1"){
$("#stepone").html("bad" + objone.codeurl")
}
else{
$("#stepone").html("good");
var loadingtwo = $.post("steptwo.php");
.done(function(datatwo){
objtwo = JSON && JSON.parse(datatwo) || $.parseJSON(datatwo);
if (objtwo.status != "1"){
$("#steptwo").html("bad");
}
else
{
$("#steptwo").html("good");
}
}
}
答案 0 :(得分:3)
否定你的表达。
而不是遵循以下模式:
if A {
if B {
if C {
do stuff
}
else error C
}
else error B
}
else error A
试试这个:
if !A {
error A
return
}
if !B {
error B
return
}
if !C {
error C
return
}
do stuff
这样,您可以将错误与各自的条件保持一致,并避免深度嵌套。