JavaScript DOM 계층 이동: parentElement, child, sibling 활용법

JavaScript를 사용하면 DOM(Document Object Model)을 통해 HTML 문서 구조를 탐색하고 특정 요소를 쉽게 조작할 수 있습니다. DOM 계층 이동과 관련된 주요 프로퍼티와 메서드를 정리하여, 실용적인 사용 방법을 소개합니다.

1. 부모 요소 접근

parentElement

  • 설명: 현재 요소의 바로 위 부모 요소를 반환합니다. 부모가 없으면 null을 반환합니다.
  • 사용 예시:
    const child = document.querySelector('.child');
    const parent = child.parentElement;
    console.log(parent); // .parent 요소 출력
    

parentNode

  • 설명: 부모 노드를 반환합니다. 텍스트 노드 등도 포함될 수 있습니다.
  • 차이점: 요소 중심 탐색에서는 parentElement를 선호합니다.

2. 자식 요소 접근

children

  • 설명: 현재 요소의 모든 자식 요소를 HTMLCollection으로 반환합니다.
  • 특징: 텍스트 노드는 포함하지 않습니다.
  • 사용 예시:
    const parent = document.querySelector('.parent');
    const childElements = parent.children;
    console.log(childElements); // 자식 요소들의 컬렉션 출력
    

childNodes

  • 설명: 현재 노드의 모든 자식 노드를 반환합니다 (텍스트 노드, 주석 포함).
  • 사용 예시:
    const parent = document.querySelector('.parent');
    const childNodes = parent.childNodes;
    console.log(childNodes); // 자식 노드들 출력 (텍스트, 요소 포함)
    

firstElementChild

  • 설명: 첫 번째 자식 요소를 반환합니다. 텍스트 노드는 제외됩니다.
  • 사용 예시:
    const parent = document.querySelector('.parent');
    const firstChild = parent.firstElementChild;
    console.log(firstChild); // 첫 번째 자식 요소 출력
    

lastElementChild

  • 설명: 마지막 자식 요소를 반환합니다.
  • 사용 예시:
    const parent = document.querySelector('.parent');
    const lastChild = parent.lastElementChild;
    console.log(lastChild); // 마지막 자식 요소 출력
    

3. 형제 요소 접근

nextElementSibling

  • 설명: 현재 요소의 다음 형제 요소를 반환합니다.
  • 사용 예시:
    const firstChild = document.querySelector('.child1');
    const nextSibling = firstChild.nextElementSibling;
    console.log(nextSibling); // .child2 출력
    

previousElementSibling

  • 설명: 현재 요소의 이전 형제 요소를 반환합니다.
  • 사용 예시:
    const secondChild = document.querySelector('.child2');
    const prevSibling = secondChild.previousElementSibling;
    console.log(prevSibling); // .child1 출력
    

4. 특정 요소로의 접근

querySelector

  • 설명: CSS 선택자를 사용하여 특정 요소를 반환합니다.
  • 사용 예시:
    const element = document.querySelector('.className');
    console.log(element);
    

querySelectorAll

  • 설명: CSS 선택자로 조건에 맞는 모든 요소를 NodeList로 반환합니다.
  • 사용 예시:
    const elements = document.querySelectorAll('.className');
    console.log(elements);
    

5. 부모-자식-형제를 조합한 탐색 예시

const child = document.querySelector('.child2');

// 부모 찾기
const parent = child.parentElement;
console.log('Parent:', parent);

// 이전 형제 찾기
const prevSibling = child.previousElementSibling;
console.log('Previous Sibling:', prevSibling);

// 다음 형제 찾기
const nextSibling = child.nextElementSibling;
console.log('Next Sibling:', nextSibling);

// 첫 번째 자식 찾기
const firstChild = parent.firstElementChild;
console.log('First Child:', firstChild);

// 마지막 자식 찾기
const lastChild = parent.lastElementChild;
console.log('Last Child:', lastChild);

6. DOM 탐색 프로퍼티 요약

프로퍼티 설명 텍스트 노드 포함 여부
parentElement 부모 요소 반환 아니오
parentNode 부모 노드 반환
children 자식 요소들의 HTMLCollection 반환 아니오
childNodes 자식 노드들의 NodeList 반환
firstElementChild 첫 번째 자식 요소 반환 아니오
lastElementChild 마지막 자식 요소 반환 아니오
nextElementSibling 다음 형제 요소 반환 아니오
previousElementSibling 이전 형제 요소 반환 아니오

JavaScript에서 DOM 계층 탐색은 웹 페이지의 구조를 이해하고 상호작용을 가능하게 하는 중요한 기술입니다. 다양한 프로퍼티를 조합하여 유연한 탐색 로직을 작성해 보세요!

Categories:

Updated:

Leave a comment