не применяется класс

имеется календарь в который передаю массивы с датами, на календаре эти диапазоны дат закрашиваются, однако почему-то не хочет закрашиваться первый день каждого диапазона дат

var voucher = $('div.hidden').data('voucher');
var room = $('div.hidden').data('room');


const calendarGrid = document.querySelector('.calendar-grid');
const monthName = document.querySelector('.month-name');
const prevMonthBtn = document.querySelector('.prev-month');
const nextMonthBtn = document.querySelector('.next-month');

let currentDate = new Date();

function populateCalendarGrid() {
  const firstDayOfMonth = new Date(currentDate.getFullYear(), currentDate.getMonth(), 1);
  const lastDayOfMonth = new Date(currentDate.getFullYear(), currentDate.getMonth() + 1, 0);
  const daysInMonth = lastDayOfMonth.getDate();

  calendarGrid.innerHTML = '';

  let dateCounter = 1;

  for (let i = 0; i < 6; i++) {
    for (let j = 0; j < 7; j++) {
      const cell = document.createElement('div');
      cell.classList.add('calendar-cell');

      if (i === 0 && j < firstDayOfMonth.getDay()) {
        // пустая ячейка перед первым днем месяца
      } else if (dateCounter > daysInMonth) {
        // Пустая ячейка после последнего дня месяца
      } else {
        const currentDates = new Date(currentDate.getFullYear(), currentDate.getMonth(), dateCounter);


        voucher.forEach(function(item) {
          room.forEach(function(rm) {
           
            if (currentDates >= new Date(item.arrival_date) && currentDates <= new Date(item.date_departure) && item.number_room == rm.number_room ) {
        cell.classList.add('range-date');
 
      }
});
});      

        cell.textContent = dateCounter;

 
      
        dateCounter++;
      }

      calendarGrid.appendChild(cell);
    }
  }
}



function updateMonthName() {
  const monthNames = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
  const monthIndex = currentDate.getMonth();
  const year = currentDate.getFullYear();
  monthName.textContent = `${monthNames[monthIndex]} ${year}`;
}


populateCalendarGrid();
updateMonthName();

prevMonthBtn.addEventListener('click', () => {
  currentDate.setMonth(currentDate.getMonth() - 1);
  populateCalendarGrid();
  updateMonthName();
});

nextMonthBtn.addEventListener('click', () => {
  currentDate.setMonth(currentDate.getMonth() + 1);
  populateCalendarGrid();
  updateMonthName();
});

Ответы (0 шт):