При вызове document.createElement создается НЕ пустой элемент
Мой код представлен ниже.
При создании новых элементов, они создаются уже заполненными (undefined элементами
)
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; // !!!
}