При вызове document.createElement создается НЕ пустой элемент

Мой код представлен ниже. При создании новых элементов, они создаются уже заполненными (undefined элементамивот такое создается при просмотре row)

function createEl(el, attrs, text) {
    let newTag = document.createElement(el);
    for (let key in attrs){
        newTag.setAttribute(key, attrs[key]);
    }
    if (text){
        newTag.innerHTML = text;
    }
    return newTag;
}

function createCell(text){
    let cell = createEl('div',{'class': 'calendar-cell day', 'role': 'gridcell'}, '')
    return cell.append(createEl('span', {'class': 'calendar-day'}, text))
}

function createCalendar(year, month){
    let wrap = createEl('div', {}, '')
    let row = createEl('div', {'class': 'calendar-week', 'role': 'row'}, '')
    let prevLastDay = new Date(year, month-1, 0)
    let lastDay = new Date(year, month, 0)
    for (let i = prevLastDay.getDay() - 1; i >= 0; i--){
        row.append(createCell(prevLastDay.getDate() - i))
    }
    for (let i = 1; i <= lastDay.getDate(); i++){
        if (row.children.length === 7){

            row = createEl('div', {'class': 'calendar-week', 'role': 'row'}, '')
        }
        row.append(createCell(i))
    }
    for (let i = 1; i <= 7 - lastDay.getDay(); i++){
        row.append(createCell(i))
    }
    wrap.append(row)
    console.log(wrap)
}

createCalendar(2020, 10)

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

Автор решения: Igor
function createCell(text){
  let cell = createEl('div',{'class': 'calendar-cell day', 'role': 'gridcell'}, '')
  cell.append(createEl('span', {'class': 'calendar-day'}, text));
  return cell; // !!!
}
→ Ссылка