ě´ě íě´ěě ě´ě´ě
ě°ě¸Ą íě´í뼟 í´ëŚíě ë, ë¤ě ëŹě ěěź ë° ë ě§ í기
íěŹ
[ěěź, ěź, ě, ě°ë] í기모ë ě˝ëě ěěě ěëě ę°ěźëŻëĄ
YMDD = new Date();
const currYear = YMDD.getFullYear();
const currMonth = YMDD.getMonth();
// next ë˛íźě ëë ě ë, ě´ ëśëśě 1ěŠ ěŚę°ěí¤ëŠ´ ëě§ ěěęš
const currMonthFirst = new Date(currYear, currMonth, 1);
const currMonthFirstDay = currMonthFirst.getDay();
const currMonthLast = new Date (currYear, currMonth+1, 0);
const currMonthLastDate = currMonthLast.getDate();
const next = document.querySelector('.next');
next.addEventListener('click', function () {
currMonth = YMDD.getMonth() + 1;
// currMonth ëłěě 'íěŹ ěě ë°ëĄ ë¤ě ě'ě ë´ěě¤
const currMonthFirst = new Date(currYear, currMonth, 1);
const currMonthFirstDay = currMonthFirst.getDay();
const currMonthLast = new Date(currYear, currMonth+1, 0);
const currMonthLastDate = currMonthLast.getDate();
const td = document.getElementsByTagName('td');
for (let i = 0; i < td.length; i++) {
td[i].innerHTML = '';
}
function insert (limit) {
fetch('calendarDate31').then(function(response){
response.text().then(function(text){
const textArray = text.split(',', limit);
for (let i = 0; i < textArray.length; i++) {
td[i+currMonthFirstDay].innerHTML = textArray[i];
}
})
});
}
if (currMonthLastDate === 31) {
insert(31);
} else if (currMonthLastDate === 30) {
insert(30);
} else {
insert(28);
}
});
ë¤ě ëŹ ë ě§ë¤ëĄ ë°ë긴 íëë° í ë˛ë§ ë°ëęł , console ě°˝ě ěëě ę°ě ě¤ëĽę° ë¸
Uncaught (in promise) TypeError: Cannot set properties of undefined (setting 'innerHTML')
ě 매íę˛ ajax뼟 ě ęš ë°°ě°ęł ě¤ěľě ěěíëë ě¤ëĽę° ë°ěíë¤. ajax ęłľëśí늴ě 본 ë¨ě´ě´ę¸´ íë° ě¤ěľ ě ęš ëęł ěśę°ëĄ ęłľëśíëŹ ę°ěź íë ęł ëŻźíë ě°¨ě ě˝ëěě ěěěš ëŞťíë ě몝ë ëśëśě ë ë°ę˛Źíë¤.
currMonth = YMDD.getMonth() + 1;
currMonth = currMonth + 1;
ě˘ě¸Ą íě´í뼟 í´ëŚíě ë, ë¤ě ëŹě ěěź ë° ë ě§ í기
// 모ë next뼟 prevëĄ ë°ęż
const prev = document.querySelector('.prev');
prev.addEventListener('click', function () {
currMonth = YMDD.getMonth() - 1;
// ěŹę¸°ě +1ě -1ëĄ ë°ęż
const currMonthFirst = new Date(currYear, currMonth, 1);
const currMonthFirstDay = currMonthFirst.getDay();
const currMonthLast = new Date(currYear, currMonth+1, 0);
const currMonthLastDate = currMonthLast.getDate();
const td = document.getElementsByTagName('td');
for (let i = 0; i < td.length; i++) {
td[i].innerHTML = '';
}
function insert (limit) {
fetch('calendarDate31').then(function(response){
response.text().then(function(text){
const textArray = text.split(',', limit);
for (let i = 0; i < textArray.length; i++) {
td[i+currMonthFirstDay].innerHTML = textArray[i];
}
})
});
}
if (currMonthLastDate === 31) {
insert(31);
} else if (currMonthLastDate === 30) {
insert(30);
} else {
insert(28);
}
});
function clickBtn (num) {
currMonth = currMonth + num;
const currMonthFirst = new Date(currYear, currMonth, 1);
const currMonthFirstDay = currMonthFirst.getDay();
const currMonthLast = new Date(currYear, currMonth+1, 0);
const currMonthLastDate = currMonthLast.getDate();
const td = document.getElementsByTagName('td');
for (let j = 0; j < td.length; j++) {
td[j].innerHTML = '';
}
function insert (limit) {
fetch('calendarDate31').then(function(response){
response.text().then(function(text){
const textArray = text.split(',', limit);
for (let i = 0; i < textArray.length; i++) {
td[i+currMonthFirstDay].innerHTML = textArray[i];
}
})
});
}
if (currMonthLastDate === 31) {
insert(31);
} else if (currMonthLastDate === 30) {
insert(30);
} else {
insert(28);
}
}
// 4. ě°ě¸Ą íě´í뼟 í´ëŚ ě, ë¤ě ëŹě ěěź & ë ě§ í기
const next = document.querySelector('.next');
next.addEventListener('click', () => clickBtn(1));
// 5. ě˘ě¸Ą íě´í뼟 í´ëŚ ě, ě´ě ëŹě ěěź & ë ě§ í기
const prev = document.querySelector('.prev');
prev.addEventListener('click', () => clickBtn(-1));
íšě ë ě§ëĽź í´ëŚíě ë, ěë¨ě ěěź ë° ë ě§ ë°ěí기
let date_start = currMonthFirst.getDate();
for (let i = 0; i < currMonthLastDate; i++) {
td[i+currMonthFirstDay].innerHTML = date_start;
date_start++;
}
const date = document.querySelector('.date');
const day = document.querySelector('.day');
td[3].addEventListener('click', function() {
// ě íí 'ë ě§'뼟 ěë¨ě í기
date.innerHTML = td[3].innerHTML;
// ě íí 'ěěź'ě ěë¨ě í기
let makeDate = new Date(currYear, currMonth, td[3].innerHTML);
day.innerHTML = (makeDate.toDateString().split(' '))[0];
});
ě íí 'ěěź'ě ěë¨ě í기íë ë°Šë˛
íěŹ í늴ě ëěě ¸ ěë ëŹë Ľě ě°ëě ěě´ ëŹ´ěě¸ě§ 꾏í í, ě´ëĽź td[3].innerHTMLęłź 쥰íŠí´ ě íí ë ě§ëĽź Date ę°ě˛´ ííëĄ ęľŹí¨
toDateString().split('')뼟 ě´ěŠí´ Date ę°ě˛´ěě ěěź ëśëśë§ 꾏í í ě´ëĽź dayě innerHTMLě ě´ěŠí´ ě˝ě
tdě index ę°ě 3ě´ ěë ë¤ëĽ¸ ěŤěë ëŁě ě ěëëĄ ěě ě˝ë뼟 íľě§¸ëĄ changeTopě´ëźë í¨ě ěě ëŁęł , ꡸ 매ę°ëłě뼟 numě´ëźęł ě ě´ě¤ í 3ě´ ě°ěŹ ěë ě댏뼟 numě´ëźë ëłěëĄ ë°ężěŁźěë¤
ě ě ę°ěë§íź changeTop í¨ě뼟 ě¤íí기 ěí´ for ë°ëłľëŹ¸ě ěśę°íë¤
ě´ë ę˛ë§ íëęš ëšě´ ěë ě ě ě íí 경ě°ěë ě íí 'ěěź'ě ěë¨ě ęł ě ę°(íěŹ ëěě ¸ ěë ěě ě´ě ěě ë§ě§ë§ ë ě ěěź)ěźëĄ íę¸°ę° ëěë¤
ě´ ëŹ¸ě 뼟 í´ę˛°í기 ěí´ ě´ë˛¤í¸ 댏ě¤ë ěě if 쥰깴돸ě ěśę°í´ ě íí ě ě´ ëšě´ ěë 경ě°( td[num].innerHTML === '' ) ě´ë˛¤í¸ 댏ě¤ëę° ě ęą°ëě´ ěë¨ě ëłí뼟 ěŁźě§ ěëëĄ íë¤
ě´ë, 기쥴 ě˝ëë¤ě else 꾏돸 ěěźëĄ ěŽę˛¨ěźë§
if ęľŹëŹ¸ě´ ě ëëĄ ěëíë¤
const date = document.querySelector('.date');
const day = document.querySelector('.day');
function changeTop(num) {
td[num].addEventListener('click', function changeDateAndDay () {
// ě íí ě
ě ě돴 ěŤěë ěě 경ě°, ěëŹ´ë° ëłíë ěźě´ëě§ ěëëĄ
if (td[num].innerHTML === '') {
this.removeEventListener('click', changeDateAndDay);
} else {
// ě íí 'ë ě§'뼟 ěë¨ě í기
date.innerHTML = td[num].innerHTML;
// ě íí 'ěěź'ě ěë¨ě í기
let makeDate = new Date(currYear, currMonth, td[num].innerHTML);
day.innerHTML = (makeDate.toDateString().split(' '))[0];
}
});
}
for (let i = 0; i < td.length; i++) {
changeTop(i);
}
ěë´ë ě꾏 ěŹíě 모ë 꾏íě ěëŁíęł , ě ëëĄ ëěíë 깸 íě¸íë¤
ë¤ë§, ëŞ ę°ě§ ěě í ëśëśě´ ë¨ě ěë¤7.1. ě˘ě° ë˛íź í´ëŚ ě, ěë¨ě ěęłź ě°ë ëłę˛˝
7.2. ëŹë Ľě ë ě§ í´ëŚ ě, ë ě§(ěŤě) ěęš ë°ęž¸ę¸°
7.3. console ě°˝ě ë¨ë ě¤ëĽ í´ę˛°
// 1) ě˘ě° ë˛íź í´ëŚ ě, ěë¨ě ěęłź ě°ë ëłę˛˝
const month = document.querySelector('.month');
const year = document.querySelector('.year');
// (1) ě°ě¸Ą ë˛íź í´ëŚ ě, ěë¨ě ěęłź ě°ë ëłę˛˝
next.addEventListener('click', function changeMonthAndYear () {
// ě ëłę˛˝
makeDate = new Date(currYear, currMonth);
month.innerHTML = (makeDate.toDateString().split(' '))[1];
// ě°ë ëłę˛˝
makeDate = new Date(currYear, currMonth);
year.innerHTML = (makeDate.toDateString().split(' '))[3];
});
// (2) ě˘ě¸Ą ë˛íź í´ëŚ ě, ěë¨ě ěęłź ě°ë ëłę˛˝
prev.addEventListener('click', function changeMonthAndYear () {
// ě ëłę˛˝
makeDate = new Date(currYear, currMonth);
month.innerHTML = (makeDate.toDateString().split(' '))[1];
// ě°ë ëłę˛˝
makeDate = new Date(currYear, currMonth);
year.innerHTML = (makeDate.toDateString().split(' '))[3];
});
ě˛ěěë ěě ę°ě´ ěěąí í ë°ëĄ ě´ě ě ě´ëŻ¸ ë§ë¤ě´ ëě í´ëš ě˘ě° ë˛íźě ě´ë˛¤í¸ 댏ě¤ëëĄ ě˝ë뼟 ě´ëí´ěŁźěë¤
꡸ë°ë° ě´ë ę˛ ěŽę¸°ëęš ě¤íě´ ë긴 ëëë° ę°íš ę°ë¤ę° ë¤ě ëěŹ 7.3ě ě¤ëĽě ëę°ě ě¤ëĽę° ëę°ě ěŁźę¸°ëĄ ëŹë¤.
for (let i = 0; i < td.length; i++) {
td[i].style.color = 'black';
td[num].style.color = '#ffb94f';
}
for (let i = 0; i < td.length; i++) {
td[i].style.color = 'black';
}