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

Возможно, я хочу повторить гостиницуData, но я не знаю, как пройти (индекс, отель) в цикл 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 - Кстати, можете ли вы отметить это как ответ? – TSV

Смежные вопросы