只是要在安全方面,你應該總是檢查任意鍵的在for in
循環業主:
for (var i in PriceRanges[purpose])
{
if (PriceRanges[purpose].hasOwnProperty(i))
{
html += '<option value="' + PriceRanges[purpose][i].id + '">'
+ PriceRanges[purpose][i].text + '</option>';
}
}
但這看起來我喜歡你遍歷數組,在這種情況下:使用for
,不for in
,因爲在for in
最後i
陣列上會length屬性...
for (var i=0;i<PriceRanges[purpose].length;i++)
{
html += '<option value="' + PriceRanges[purpose][i].id + '">'
+ PriceRanges[purpose][i].text + '</option>';
}
當然,要格外,超級騙子安全,你應該如果添加一個到兩個循環:
if (PriceRanges[purpose][i].id && PriceRanges[purpose][i].text)
爲了避免使用不存在的屬性(並因此將返回undefined)
你可以把你的JSON對象嗎?我們需要查看屬性 –
請控制'PriceRange [purpose]'併發布對象內容。 – David
'PriceRanges [purpose]是一個數組還是一個對象?很有可能你得到的'r'值不是你期望的類型,所以'r.text'是'undefined'。這可能是因爲「i」的一個值不符合你的期望。如果'PriceRanges [purpose]'是一個數組,那麼你應該用'for(var i = 0,len = PriceRanges [purpose] .length; i
jfriend00