2013-09-16 54 views
0

我遍歷api對象並且某些結果沒有特定的屬性。我用這個做一個佔位符,如果屬性缺失:即使未調用,JQuery未定義對象屬性仍然會導致錯誤

if (data.track[i].image == undefined) { 
    urlstring = "path/to/image"; 
} else { 
    urlstring = data.track[i].image[4][0]; 
} 

不幸的是,我仍然得到錯誤Uncaught TypeError: Cannot read property '0' of undefined,即使如果屬性未定義else子句應不會觸發。

+1

很明顯'data.track'本身是'undefined',這不是你正在檢查的內容。 – Bergi

回答

0

你的問題是data.track[i].image[4]undefined而你的代碼似乎期望一個數組。

您可以使用

if (data.track[i].image && data.track[i].image[4]) { 
    urlstring = data.track[i].image[4][0]; 
} else { 
    urlstring = "path/to/image"; 
} 

注:我以爲data.track[i]data.toptracks.track[i]之間的搭配是問題的假象。

+0

不幸的是它仍然給出了相同的錯誤。但是這一次,錯誤在「if」行 – Amja

相關問題