JavaScript

DOM Node

lshjju 2026. 2. 14. 15:27

웹 페이지에 새로운 요소를 만들어 넣거나 필요 없는 부분을 제거하는 DOM 노드 추가 및 삭제 방법에 대해 알아보겠습니다.

단순히 글자를 바꾸는 것을 넘어, 사용자의 동작에 따라 새로운 목록을 만들거나 창을 띄울 때 필수적인 기술입니다.


📘 1. 노드 생성과 추가 (Creation & Insertion)

새로운 HTML 요소를 화면에 나타나게 하려면 **'생성 → 설정 → 부착'**의 3단계를 거쳐야 합니다.

[1단계] 요소 생성

document.createElement()를 사용하여 메모리상에 새로운 태그 객체를 만듭니다.

JavaScript
 
const newLi = document.createElement('li'); // <li> 태그 생성

[2단계] 내용 및 속성 설정

생성된 태그 안에 글자를 넣거나 클래스를 지정합니다.

JavaScript
 
newLi.textContent = '새로운 할 일';
newLi.classList.add('item');

[3단계] 부모 노드에 부착

어느 위치에 넣을지 결정하여 부모 노드에 연결합니다.

  • appendChild(): 부모의 가장 마지막 자식으로 추가합니다.
  • prepend(): 부모의 가장 첫 번째 자식으로 추가합니다.

📘 2. 노드 삭제 (Removal)

화면에 있는 요소를 지우는 방법은 크게 두 가지가 있습니다.

  • remove(): 삭제하고 싶은 요소 자신을 바로 지웁니다. (현대적 방식)
  • removeChild(): 부모 노드에서 특정 자식 노드를 선택하여 지웁니다. (전통적 방식)
JavaScript
 
const target = document.querySelector('.old-item');
target.remove(); // 스스로 삭제

📘 3. 주요 메서드 한눈에 보기 (요약 표)

학생들이 암기하기 좋도록 핵심 메서드들을 정리한 표입니다.

구분 메서드 설명
생성 createElement(tagName) 새로운 요소 노드를 만들어 반환함
추가 appendChild(node) 부모 노드의 마지막 자식으로 노드를 추가함
추가 prepend(node) 부모 노드의 첫 번째 자식으로 노드를 추가함
추가 before(node) / after(node) 기준 노드의 앞 또는 뒤 형제 노드로 추가함
삭제 remove() 해당 노드를 DOM 트리에서 완전히 제거함
삭제 removeChild(node) 부모 노드에서 특정 자식 노드를 제거함
복제 cloneNode(deep) 노드를 복사함 (deep이 true면 자식까지 복사)

🖥️ 실전 예제 코드: "리스트 추가 및 삭제"

JavaScript
 
// 1. 부모 요소와 버튼 선택
const list = document.querySelector('#todoList');
const addBtn = document.querySelector('#addBtn');

// 2. 추가 버튼 클릭 이벤트
addBtn.addEventListener('click', () => {
    // 요소 생성
    const newItem = document.createElement('li');
    newItem.textContent = '클릭으로 생성된 아이템';
    
    // 삭제 버튼도 함께 생성
    const delBtn = document.createElement('button');
    delBtn.textContent = '삭제';
    delBtn.onclick = () => newItem.remove(); // 클릭 시 해당 li 삭제
    
    newItem.appendChild(delBtn); // li 안에 버튼 넣기
    list.appendChild(newItem);   // ul 안에 li 넣기
});

오늘의 요약

  • **createElement**로 상자를 만들고, **appendChild**로 벽에 붙인다.
  • 최신 브라우저에서는 remove() 한 줄이면 깔끔하게 삭제된다.
  • 요소를 추가할 때는 반드시 '어떤 부모' 밑에 들어갈지 지정해 주어야 한다.

이제 DOM의 생성과 소멸까지 마스터하셨습니다!


'JavaScript' 카테고리의 다른 글

BOM  (0) 2026.02.14
DOM  (0) 2026.02.14
DOM Selection and Manipulation  (0) 2026.02.14
DOM Event Handling  (0) 2026.02.14
DOM class property  (0) 2026.02.14