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 μ‚¬μš©ν–ˆλ‹€
λŒ“κΈ€μ΄ ν™”λ©΄ μ•„λž˜μ— μΆ”κ°€λœλ‹€
μž…λ ₯창이 μ΄ˆκΈ°ν™”λœλ‹€