2015-10-25 129 views
-4

我試圖將數據添加到一個空的var,但數據沒有被存儲。 致電hotel_list時,顯示爲空。我錯過了什麼?謝謝!數據沒有存儲在變量中

var hotelData = JSON.parse(data); 

function hotelList(){ 
    var hotel_list = ''; 
    for (i = 0; i < hotelData.length; i++) { 
     function list(index, hotel) { 
      hotel_list += '<li class="hotel" data-index="'+ index +'">'+ hotel.name +'</li>'; 
      document.getElementById("hotel-listing").innerHTML = hotel_list; 
     }; 
    }; 
}; 

document.addEventListener('DOMContentLoaded', function() { 
    hotelList(); 
}); 
+4

你定義一個函數內循環,但從來沒有調用它。 –

+0

For循環不使用回調。你對'each'還是'forEach'感到困惑? – JJJ

+0

可能我想迭代hotelData,但我不知道如何將(索引,酒店)傳遞給forEach循環 – Gibson

回答

1

var data = '[{"name": "h1"}, {"name": "h2"}]'; 
 
var hotelData = JSON.parse(data); 
 

 
function hotelList(){ 
 
    var hotel_list = ''; 
 
    (hotelData || []).forEach(function (hotel, index) { 
 
      hotel_list += '<li class="hotel" data-index="'+ index +'">'+ hotel.name +'</li>'; 
 
     }); 
 
    document.getElementById("hotel-listing").innerHTML = hotel_list; 
 
}; 
 

 
document.addEventListener('DOMContentLoaded', function() { 
 
    hotelList(); 
 
});
<div id="hotel-listing"></div>

+0

非常感謝,像魅力一樣工作。 (hotelData || [])是什麼意思? – Gibson

+0

如果「hotelData」未定義,則該函數不會引發錯誤。如果你確信它的價值,你可以省略這個,並簡單地使用「hotelData.forEach(...」。 – TSV

+0

@Gibson - btw,你可以把這個標記爲答案嗎? – TSV