2015-10-21 150 views
-4

這個問題實際上讓我發瘋。實際上耗盡值執行ajax請求,到目前爲止他們的方法非常好,php json正確地返回所有字段並且還被指出:不可用。此字段不是由階級看到和我得到的答案AJAX返回undefined,也許我的代碼可以更好地解釋:對象響應ajax返回undefined

Ajax請求中的console.log

$.post(postUrl, postData, function(response) 
    { 
     console.log(response); 
     console.log(response.unavailables); 
     ... 

響應結果

enter image description here

和response.unavailables中的console.log

enter image description here

如何在響應中看到我正確得到unavailables array,但代碼沒有看到這一點,我已經檢查了php課了幾個小時,檢查了結果和其他所有東西都正確!事實上,值不可用返回,但出於一個奇怪的原因,我得到一個未定義的。爲什麼會這樣?

利瑪竇解決方案

$.each(response, function(_, obj) 
         { 
          $.each(obj, function(key, val) 
          { 
           if (key === 'unavailables') 
           { 
            console.log("val => " , val); 
           } 
          }); 
         }); 

enter image description here

更多細節:

enter image description here

+2

如何應對[0] .unavailables? – Rayon

+1

換句話說...注意縮進水平... –

回答

3

這是response[0].unavailables

如果你看一下在控制檯日誌數據結構,事實上,你看到unavailables處於同一水平appointments,這是關鍵0內,因此unavailables過。

編輯:我能想到的所有周期是unavailables如下的唯一途徑:

$.each(response, function(_, obj) { 
    $.each(obj, function(key, val) { 
     if (key === 'unavailables') { 
      // here you go 
     } 
    }); 
}); 
+0

它可能訪問所有級別而沒有索引的參考?如下所示: $ .each(response.unavailables,function(index,unavailable) – Dillinger

+0

根據您當前的數據結構,我會說「不」。 –

+0

您能否給我一個類似於$ .each的模式?如果response [0] .unavailables爲空,代碼就會變成未定義的。 – Dillinger

2

所以,你可以使用訪問項目...

response[i].unavailables 

其中i是指數。

例如...

for (var i = 0; i < response.length; i++) { 
    console.log(response[i].unavailables.id); 
} 
+0

它可能訪問所有級別沒有索引的參考?像這樣:$ .each(response.unavailables,function(index,unavailable)?? – Dillinger