Ошибка после вставки HTML-кода в DOM в консоли (браузер Chrome)

#javascript #jquery

#javascript #jquery

Вопрос:

Получить HTML в строке: room["html"] = $(this).parents(".selectRowRoom").html(); и вставить после загрузки step-02.php , .thisRoom но эта ошибка находится в консоли.

 $(function () {
var hotel = [];
var lenHotel = 0;
$('#forPrice').on('click', function() {
    $('select').each(function() {
        if($(this).val() > 0 amp;amp; $(this).val() < 10) {
            var room = {};
            room["room"] = $(this).attr('room');
            room["price"] = $(this).attr('price');
            room["val"] = $(this).val();
            room["html"] = $(this).parents(".selectRowRoom").html();

            hotel.push(room);
        }
    });
    lenHotel = Object.keys(hotel).length;
    console.log(hotel);
});

$('#forPrice').click(function () {
    $('#Step-01').hide();
    $('#Step-02').show();
    $('.hiddenAndShow').hide();
    $( "#Step-02" ).load( 'step_02', function () {
        for(var i = 0; i <= lenHotel; i  ) {
            $("#Step-02").find('.thisRoom').append("<tr class="selectRowRoom">");
            $("#Step-02").find('.thisRoom').append(hotel[i]['html']);
            $("#Step-02").find('.thisRoom').append("</tr>")
        }
    });
});
})
  

И ошибка в консоли:

 Uncaught TypeError: Cannot read property 'html' of undefined
  

Комментарии:

1. Что вы здесь делаете, вы пытаетесь получить родительский HTML-код HTML? В этом случае это не работает, поскольку HTML является суперпродителем и не имеет никаких родителей.

Ответ №1:

Это…

  for(var i = 0; i <= lenHotel; i  ) 
  

Должно быть так

 for(var i = 0; i < lenHotel; i  ) 
  

Ваш доступ к элементу в массиве, который не существует.