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

javascript コンソールにエラーがないか確認してください。 datanull または空の配列の場合があります。

のチェックを追加する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 に答える