Ch.9 JavaScript 기초 — 페이지에 생명을
DOM 조작 — 페이지 제어하기
JavaScript로 HTML을 마음대로 바꿀 수 있다면?
페이지에 있는 텍스트를 바꾸고, 스타일을 변경하고, 새 요소를 추가하는 것 — 이것이 바로 DOM 조작입니다.
JavaScript가 HTML 요소에 접근하는 방법은?
DOM(Document Object Model) — HTML을 JavaScript가 이해하는 객체 트리로 변환한 것입니다.
핵심 내용
querySelector로 요소를 선택하고 속성을 변경합니다
// 요소 선택 — CSS 셀렉터와 동일!
const title = document.querySelector("h1");
const btn = document.querySelector("#myBtn");
const cards = document.querySelectorAll(".card");
// 텍스트 변경
title.textContent = "새 제목!";
// 스타일 변경
title.style.color = "#4ECDC4";
title.style.fontSize = "2rem";
// 클래스 추가/제거/토글
btn.classList.add("active");
btn.classList.remove("hidden");
btn.classList.toggle("dark");JavaScript로 새 HTML 요소를 만들어 페이지에 추가합니다
// 1. 새 요소 생성
const newCard = document.createElement("div");
// 2. 내용과 스타일 설정
newCard.textContent = "새로 추가된 카드!";
newCard.classList.add("card");
newCard.style.background = "#E8FAF7";
// 3. 페이지에 추가
const container = document.querySelector("#list");
container.appendChild(newCard);
// 또는 innerHTML로 한번에 (주의: 보안 위험)
container.innerHTML += '<div class="card">HTML 직접 삽입</div>';createElement: 새 요소 객체 생성
속성 설정: 텍스트, 클래스, 스타일 지정
appendChild: 부모 요소에 자식으로 추가
innerHTML vs appendChild innerHTML: HTML 문자열로 한번에 삽입 (간편하지만 XSS 위험) appendChild: 요소 객체를 안전하게 추가 (권장)
DOM 조작으로 간단한 할 일 목록을 만들어봅시다
CSS 클래스를 추가하거나 제거할 때 사용하는 속성은?
JavaScript에서 새 HTML 요소를 만드는 메서드는 document.___("div") 이다
querySelectorAll()은 하나의 요소만 반환한다
JavaScript 기초 완전 정복!
핵심 용어
querySelector()
CSS 셀렉터로 첫 번째 요소 선택
textContent
요소의 텍스트 읽기/변경
style
인라인 스타일 직접 변경
classList
CSS 클래스 추가/제거/토글
정리 노트
DOM 조작 — 페이지 제어하기
요소 선택
- querySelector()
- CSS 셀렉터로 첫 번째 일치 요소 선택
- querySelectorAll()
- CSS 셀렉터로 모든 일치 요소를 NodeList로 반환
- getElementById()
- id 속성으로 단일 요소 선택
요소 변경·생성
- textContent
- 요소의 텍스트 내용을 읽거나 변경
- innerHTML
- 요소 내부의 HTML 코드를 읽거나 변경
- createElement()
- 새 HTML 요소를 메모리에 생성
- appendChild()
- 생성한 요소를 부모 요소에 추가
DOM은 HTML을 JavaScript 객체로 다루는 인터페이스입니다.
시각 자료
핵심 정리
- 1querySelector = CSS 셀렉터로 요소 선택
- 2textContent, style, classList로 요소 변경
- 3createElement + appendChild로 동적 요소 생성
퀴즈와 인터랙션으로 더 깊이 학습하세요
play_circle인터랙티브 레슨 시작