2013-08-29 64 views
0

我想測試下面的代碼中的數據數組是否具有內容,因爲當用戶給出不存在的packageid(下面的代碼中的變量)時,我想要其他的要執行的「if ... else」。當我把一個packageid存在時,一切正常,但是當我放入沒有數字或不存在的數字時,其他的一方不會被評估。測試數組中的數據是否有值Javascript

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

所以你要問是否有可能以測試是否'data'有什麼價值? – Jake

回答

2

檢查您的javacript控制檯是否有任何錯誤。 data可能爲空或爲空數組。

添加支票console.log(typeof data)也可能會有用。

看都沒看,我想最有可能做這樣的事情if (data && data.length > 0)

+0

謝謝,我用if(data && data.length> 0)並且完美地工作。 – user1422136

0

如果你檢查你的控制檯輸出,我打賭你會在那裏看到一個錯誤。

你如果檢查應該是這樣的:

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

正如你可能沒有你的數組中的元素。