Date picker๋ฅผ ๊ตฌํํด๋ณด๋ ์ค์ ํ ๊ฐ์ง ๋ฌธ์ ์ ์ด ์๊ฒผ๋ค.
calendarNavElement์ appendChild๋ก ์ผ์ชฝ ํ์ดํ ๋ฒํผ์ ๋ฃ์ด์ฃผ๊ณ ,
innerHTML์ ์ด์ฉํด์ ์ฝ๋๋ฅผ ์์ฑํด ์ฃผ์๋๋ฐ ์๋์ ๊ฐ์ด ์ผ์ชฝ ํ์ดํ๊ฐ ๋ณด์ด์ง ์๋ ๊ฒ์ด๋ค.
const leftNavElement = document.createElement("div");
leftNavElement.className = "triangle-left";
leftNavElement.addEventListener('click', function () {
const calendar = Calendar(new Date(nowDate.setMonth(nowDate.getMonth() - 1)));
calendar.classList.remove("hidden");
element.replaceWith(calendar);
});
calendarNavElement.appendChild(leftNavElement);
calendarNavElement.innerHTML=`
<div class="view-month-year">
<div class="month">${monthList}</div>
<div class="year">${nowYear}</div>
</div>
`;
์ดํ ์๋ต ...

๊ทธ๋์ ๋๋ innerHTML ๋์ insertAdjacentHTML์ ์ฌ์ฉํด ๋ณด์๋ค.
โ๏ธ ๋จผ์ , insertAdjacentHTML์ ๊ธฐ๋ณธ ๋ฌธ๋ฒ์ด๋ค.
element.insertAdjacentHTML(position, text);
position์ ์๋์ ์๋ ๋จ์ด๋ง ์ฌ์ฉ ๊ฐ๋ฅํ๋ค.
text๋ ํด๋น ์์น์ ์ฝ์ ๋ HTML์์์ text ๊ฐ์ ์ ์ด์ฃผ๋ฉด ๋๋ค.
โ๏ธ insertAdjacentHTML์ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ฉด ๊ธฐ์กด์ ๋ ธ๋๋ ๊ฑด๋ค์ง ์๊ณ ๋ ธ๋๋ฅผ ์ถ๊ฐํ๋ค.
์ด๊ฒ์ด innerHTML๊ณผ์ ๊ฐ์ฅ ํฐ ์ฐจ์ด์ ์ด๋ค.
innerHTML ์์ฑ์ ๊ธฐ์กด์ ๋ ธ๋๋ฅผ ์ญ์ ํ์ ์ฌ๊ตฌ์ฑํ๊ธฐ ๋๋ฌธ์ innerHTML์ ๊ฐ์ด ํ ๋น๋ ๋ ๋ง๋ค DOM Tree๋ ์๋ก ๊ทธ๋ ค์ง๊ฒ ๋๋ค.
ํ์ง๋ง insertAdjacentHTML ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ฉด ์ด๋ฏธ ์ฌ์ฉ์ค์ธ element๋ ๊ฑด๋๋ฆฌ์ง ์๊ณ ํน์ ์์น์ DOM Tree ์์ ์ํ๋ ๋ ธ๋๋ฅผ ์ถ๊ฐํ๊ฒ ๋๋ค.
์ฝ๊ฒ ๋งํด์, innerHTML์ ์ฌ์ฉํ๋ฉด ๊ธฐ์กด์ ์๋ ๊ฒ์ ๋ฎ์ด์ฐ๊ธฐ๊ฐ ๋๋ฒ๋ฆฌ๋ ๊ฒ์ด๋ค.
์๋์ insertAdjacentHTML ๋ฉ์๋๋ฅผ ์ฌ์ฉํ ์ฝ๋์ ๊ฒฐ๊ณผ ํ๋ฉด์ด๋ค.
const leftNavElement = document.createElement("div");
leftNavElement.className = "triangle-left";
leftNavElement.addEventListener('click', function () {
const calendar = Calendar(new Date(nowDate.setMonth(nowDate.getMonth() - 1)));
calendar.classList.remove("hidden");
element.replaceWith(calendar);
});
calendarNavElement.appendChild(leftNavElement);
// innerHTML -> insertAdjacentHTML ๋ณ๊ฒฝ
calendarNavElement.insertAdjacentHTML('beforeend', `
<div class="view-month-year">
<div class="month">${monthList}</div>
<div class="year">${nowYear}</div>
</div>
`);
์ดํ ์๋ต ...

calendarNavElement์ appendChild๋ก ๋ฃ์ด์ค leftNavElement๊ฐ ์ญ์ ๋์ง ์๊ณ ์ ์์ ์ผ๋ก ๋ณด์ด๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
์ฐธ๊ณ : https://developer.mozilla.org/ko/docs/Web/API/Element/insertAdjacentHTML