Search
Duplicate

๋Œ“๊ธ€

๋Œ“๊ธ€ ์ƒ์„ฑ ๊ธฐ๋Šฅ ๋งŒ๋“ค๊ธฐ

์ด๋ฏธ์ง€

avatar.png
1.9 KiB

๊ฐ€์ด๋“œ ๋ฌธ์„œ

์ง์ ‘ ๋”ฐ๋ผํ•˜๋ฉฐ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ DOM ์กฐ์ž‘ ๊ฐœ๋…์„ ์ตํ˜€๋ณด์„ธ์š”.
์ด ๋ฌธ์„œ๋Š” ๋Œ“๊ธ€ ์ž‘์„ฑ UI์— ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ๋Œ“๊ธ€ ์นด๋“œ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•œ ๊ฐ€์ด๋“œ์ž…๋‹ˆ๋‹ค.

1. ๊ธฐ๋ณธ ๋ชฉํ‘œ

์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ์ž‘์„ฑ์ž ์ด๋ฆ„๊ณผ ๋Œ“๊ธ€ ๋‚ด์šฉ์„ ์ด์šฉํ•ด
โ€ข
์•„๋ฐ”ํƒ€ ์ด๋ฏธ์ง€
โ€ข
์ž‘์„ฑ์ž๋ช…
โ€ข
๋‚ ์งœ
โ€ข
๋‚ด์šฉ
์ด ํฌํ•จ๋œ ๋Œ“๊ธ€ ์นด๋“œ๋ฅผ ๋ชฉ๋ก ๊ฐ€์žฅ ์•„๋ž˜์— ์ถ”๊ฐ€ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๋งŒ๋“ค์–ด๋ด…๋‹ˆ๋‹ค.

2. ํ•„์š”ํ•œ DOM ์š”์†Œ ์„ ํƒํ•˜๊ธฐ

๋Œ“๊ธ€์„ ์ž‘์„ฑํ•˜๋ ค๋ฉด ๋‹ค์Œ ์š”์†Œ๋“ค์„ JS์—์„œ ์„ ํƒํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
โ€ข
์ž‘์„ฑ์ž input (#writer)
โ€ข
๋‚ด์šฉ textarea (#content)
โ€ข
๋Œ“๊ธ€ ๋ฆฌ์ŠคํŠธ (#commentList)
โ€ข
์ž‘์„ฑ ๋ฒ„ํŠผ (#commentBtn)
ํžŒํŠธ
โ†’ document.getElementById() ๋˜๋Š” querySelector() ํ™œ์šฉ

3. ์ด๋ฒคํŠธ ๋“ฑ๋กํ•˜๊ธฐ

์ž‘์„ฑ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด addComment() ํ•จ์ˆ˜(์ง์ ‘ ๋งŒ๋“œ์„ธ์š”)๊ฐ€ ์‹คํ–‰๋˜๋„๋ก ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
โ€ข
ํด๋ฆญ ์ด๋ฒคํŠธ ๋“ฑ๋ก: addEventListener("click", โ€ฆ)
โ€ข
์ž…๋ ฅ์ฐฝ์˜ ๊ฐ’ ๊ฐ€์ ธ์˜ค๊ธฐ: .value
ํžŒํŠธ
โ†’ โ€œ์ž‘์„ฑโ€ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ํ•จ์ˆ˜๊ฐ€ ํ˜ธ์ถœ๋˜์–ด์•ผ ํ•œ๋‹ค.

4. ์˜ค๋Š˜ ๋‚ ์งœ ๊ฐ€์ ธ์˜ค๊ธฐ

๋Œ“๊ธ€์—๋Š” ๋“ฑ๋ก๋œ ๋‚ ์งœ๊ฐ€ ๋“ค์–ด๊ฐ€์•ผ ํ•ฉ๋‹ˆ๋‹ค.
Date ๊ฐ์ฒด๋กœ ์˜ค๋Š˜ ๋‚ ์งœ๋ฅผ ๊ตฌํ•ด ๋ฌธ์ž์—ด ํ˜•ํƒœ๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
๋ชฉํ‘œ ๊ฒฐ๊ณผ ์˜ˆ์‹œ
2025-04-18
Plain Text
๋ณต์‚ฌ
ํžŒํŠธ
โ†’ new Date() โ†’ toISOString() โ†’ .slice(0,10)

5. ๋Œ“๊ธ€ ์นด๋“œ ๋งŒ๋“ค๊ธฐ

์—ฌ๊ธฐ์„œ๋ถ€ํ„ฐ๋Š” DOM ์กฐ์ž‘์„ ์ง์ ‘ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.
๋Œ“๊ธ€ ํ•œ ๊ฐœ์˜ ๊ตฌ์กฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
<div class="comment-card"> <div class="title"> ... </div> <div class="content-box"> <p class="content">๋‚ด์šฉ</p> </div> </div>
Plain Text
๋ณต์‚ฌ
ํžŒํŠธ
โ†’ ๋ฌธ์ž์—ด๋กœ ๋งŒ๋“ค์–ด(innerHTML) ๋„ฃ์„ ์ˆ˜๋„ ์žˆ๊ณ 
โ†’ createElement() ๋กœ ์š”์†Œ๋ฅผ ํ•˜๋‚˜ํ•˜๋‚˜ ์ƒ์„ฑํ•  ์ˆ˜๋„ ์žˆ๋‹ค.
์ด๋ฒˆ ์˜ˆ์ œ์—์„œ๋Š” ๋ฌธ์ž์—ด ํ…œํ”Œ๋ฆฟ ์‚ฌ์šฉ์„ ์ถ”์ฒœํ•ฉ๋‹ˆ๋‹ค.

6. ์นด๋“œ ์š”์†Œ๋ฅผ ์‹ค์ œ DOM์— ์ถ”๊ฐ€ํ•˜๊ธฐ

HTML ๋ฌธ์ž์—ด๋กœ ๊ตฌ์„ฑํ•œ ์นด๋“œ ์ฝ”๋“œ๋ฅผ ์‹ค์ œ ์š”์†Œ๋กœ ๋งŒ๋“ค์–ด ๋ฆฌ์ŠคํŠธ์— ๋„ฃ์Šต๋‹ˆ๋‹ค.
ํžŒํŠธ
โ€ข
document.createElement("div")
โ€ข
div.innerHTML = "..."
โ€ข
commentList.appendChild(div)

7. ์ž…๋ ฅ์ฐฝ ์ดˆ๊ธฐํ™”ํ•˜๊ธฐ

๋Œ“๊ธ€ ์ถ”๊ฐ€ ํ›„ ์ž…๋ ฅ์ฐฝ์„ ๋น„์›Œ์•ผ ํ•ฉ๋‹ˆ๋‹ค.
ํžŒํŠธ
โ†’ input.value = ''

8. ์ตœ์ข… ๊ตฌํ˜„ ํ๋ฆ„ ์˜ˆ์‹œ(๋กœ์ง๋งŒ)

์•„๋ž˜๋Š” โ€œ์ „์ฒด ๋กœ์ง์˜ ํ๋ฆ„โ€๋งŒ ์•Œ๋ ค์ฃผ๋Š” ํžŒํŠธ์ž…๋‹ˆ๋‹ค.
์ฝ”๋“œ๋Š” ์ง์ ‘ ์ž‘์„ฑํ•ด๋ณด์„ธ์š”!
1.
์ž…๋ ฅ๊ฐ’ ๊ฐ€์ ธ์˜ค๊ธฐ
2.
์˜ค๋Š˜ ๋‚ ์งœ ์ƒ์„ฑํ•˜๊ธฐ
3.
๋Œ“๊ธ€ ์นด๋“œ HTML ๋ฌธ์ž์—ด ๋งŒ๋“ค๊ธฐ
4.
๋ถ€๋ชจ div ์ƒ์„ฑ
5.
๋ถ€๋ชจ div์— innerHTML ์ฃผ์ž…
6.
๋Œ“๊ธ€ ๋ฆฌ์ŠคํŠธ์— appendChild๋กœ ์ถ”๊ฐ€
7.
์ž…๋ ฅ์ฐฝ ์ดˆ๊ธฐํ™”

ํ•™์Šต ๋ชฉํ‘œ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

์•„๋ž˜ ํ•ญ๋ชฉ์„ ๋ชจ๋‘ ๋‹ฌ์„ฑํ•˜๋ฉด ๊ตฌํ˜„ ์„ฑ๊ณต์ž…๋‹ˆ๋‹ค!
ํด๋ฆญ ์ด๋ฒคํŠธ ๋“ฑ๋กํ–ˆ๋‹ค
์ž…๋ ฅ๋œ ๊ฐ’ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋‹ค
์˜ค๋Š˜ ๋‚ ์งœ๊ฐ€ ํ‘œ์‹œ๋œ๋‹ค
ํ…œํ”Œ๋ฆฟ ๋ฌธ์ž์—ด์„ ์ด์šฉํ•ด HTML ๊ตฌ์„ฑํ–ˆ๋‹ค
createElement + innerHTML ์‚ฌ์šฉํ–ˆ๋‹ค
๋Œ“๊ธ€์ด ํ™”๋ฉด ์•„๋ž˜์— ์ถ”๊ฐ€๋œ๋‹ค
์ž…๋ ฅ์ฐฝ์ด ์ดˆ๊ธฐํ™”๋œ๋‹ค