我想测试下面代码中的数据数组是否有内容,因为当用户给出一个不存在的packageid(下面的代码中的变量)时,我想要“if ... else”中的else被执行。当我输入一个存在的packageid时,一切正常,但是当我没有输入任何数字或数字时,其他方面都没有得到评估。
function getInfoAndStatus(){
sym.$("customer_name").empty();
packageid = $("#tracknrfield").val();
var url = "http://student.howest.be/sylvain.vansteelandt/fedex/server/getPackageTracking.php?id=" + packageid;
$.getJSON(url,function(data){
if(data && data[0].id){
$("<span />", {
text: "Customer name: " + data[0].customer_name + " " + data[0].customer_firstname
}).appendTo(sym.$("customer_name"));
} else {
$("<span />", {
text: "The package with number " + packageid + " has not been found. Please try again."
}).appendTo(sym.$("customer_name"));
}
});
}
getInfoAndStatus();
答案 0 :(得分:2)
检查您的javacript控制台是否有任何错误。 data
可以为null或空数组。
添加console.log(typeof data)
支票也很有用。
看不见,我很可能会做if (data && data.length > 0)
答案 1 :(得分:0)
如果您检查控制台输出,我打赌您会在那里看到错误。
您的检查应如下:
if(data && data[0] && data[0].id)
因为您的阵列中可能没有元素。