0

我想测试下面代码中的数据数组是否有内容,因为当用户给出一个不存在的 packageid(下面代码中的变量)时,我希望执行“if...else”中的 else . 当我输入一个存在的 packageid 时,一切正常,但是当我没有输入任何数字或一个不存在的数字时,else 方不会被评估。

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();
4

2 回答 2

2

检查您的 javacript 控制台是否有任何错误。 data可能为 null 或空数组。

添加检查console.log(typeof data)也可能很有用。

看不见的景象,我很可能会做类似的事情if (data && data.length > 0)

于 2013-08-29T00:32:20.627 回答
0

如果你检查你的控制台输出,我敢打赌你会在那里看到一个错误。

您的 if 检查应如下所示:

if(data && data[0] && data[0].id)

因为您的数组中可能没有元素。

于 2013-08-29T00:31:52.250 回答