2015-10-25 133 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