Coding 공부/JavaScript

[JavaScript] DOM 객체 처리하는 방법 5단계

CBJH 2024. 5. 29. 15:08
728x90
반응형

자바스크립트에서 DOM(Document Object Model) 객체를 처리하는 방법에 대해 5단계로 나누어 설명해드릴게요. 각각의 단계에서 자주 사용되는 메서드와 속성을 예시와 함께 설명하겠습니다.

1단계: DOM 요소 선택하기

DOM 요소를 선택하는 것은 첫 번째 단계입니다. 이를 통해 HTML 요소에 접근할 수 있습니다.

  • document.getElementById(id): 특정 id를 가진 요소를 선택합니다.
const element = document.getElementById('myElement');

 

  • document.querySelector(selector): CSS 선택자를 사용하여 첫 번째 일치하는 요소를 선택합니다.
const element = document.querySelector('.myClass');
const inputElement = document.querySelector('input[name="myInput"]');
  • document.querySelectorAll(selector): CSS 선택자를 사용하여 모든 일치하는 요소를 선택합니다. NodeList를 반환합니다.
const elements = document.querySelectorAll('.myClass');

2단계: DOM 요소의 속성 및 값 다루기

선택한 요소의 속성과 값을 읽거나 수정할 수 있습니다.

  • element.getAttribute(attributeName): 요소의 특정 속성 값을 가져옵니다.
  • element.setAttribute(attributeName, value): 요소의 특정 속성 값을 설정합니다.
imageElement.setAttribute('src', 'newImage.jpg');

 

  • lement.value: 입력 요소(input, textarea 등)의 값을 가져오거나 설정합니다.
const inputValue = inputElement.value; inputElement.value = 'New Value';
  • element.textContent: 요소의 텍스트 콘텐츠를 가져오거나 설정합니다.
const text = paragraphElement.textContent; paragraphElement.textContent = 'New Text';
  • element.innerHTML: 요소의 HTML 콘텐츠를 가져오거나 설정합니다.
const htmlContent = divElement.innerHTML; divElement.innerHTML = '<p>New HTML content</p>';

3단계: DOM 요소 스타일 변경하기

선택한 요소의 스타일을 변경할 수 있습니다.

  • element.style.property: 인라인 스타일을 설정합니다.
element.style.color = 'red'; element.style.backgroundColor = 'blue';
  • element.classList.add(className): 클래스 추가.
element.classList.add('newClass');
  • element.classList.remove(className): 클래스 제거.
element.classList.remove('oldClass');
  • element.classList.toggle(className): 클래스 토글.
element.classList.toggle('active');

4단계: DOM 요소 이벤트 처리

이벤트 리스너를 사용하여 사용자 상호작용을 처리합니다.

  • element.addEventListener(event, callback): 이벤트 리스너 추가.
buttonElement.addEventListener('click', function() { alert('Button clicked!'); });
  • element.removeEventListener(event, callback): 이벤트 리스너 제거.
const handleClick = function() {
  alert('Button clicked!');
};
buttonElement.addEventListener('click', handleClick);
buttonElement.removeEventListener('click', handleClick);

5단계: DOM 요소 추가 및 제거

새로운 요소를 생성하고 기존 요소를 추가하거나 제거할 수 있습니다.

  • document.createElement(tagName): 새로운 요소 생성.
const newDiv = document.createElement('div');
  • element.appendChild(newChild): 자식 요소로 추가.
parentElement.appendChild(newDiv);
  • element.removeChild(childElement): 자식 요소 제거.
parentElement.removeChild(childElement);
  • element.insertBefore(newElement, referenceElement): 참조 요소 앞에 삽입.
parentElement.insertBefore(newDiv, referenceElement);

종합 예제

다음은 위 단계를 종합하여 실제 예제입니다.

<!DOCTYPE html>
<html>
<head>
  <title>DOM 조작 예제</title>
</head>
<body>
  <div id="content">
    <p class="message">Hello, world!</p>
    <input type="text" id="inputField" value="Initial value">
    <button id="changeTextButton">텍스트 변경</button>
  </div>
  
  <script>
    // 1단계: 요소 선택
    const contentDiv = document.getElementById('content');
    const messageParagraph = document.querySelector('.message');
    const inputField = document.querySelector('#inputField');
    const changeTextButton = document.querySelector('#changeTextButton');

    // 2단계: 속성 및 값 다루기
    console.log(messageParagraph.textContent); // "Hello, world!"
    messageParagraph.textContent = 'Hello, DOM!';
    console.log(inputField.value); // "Initial value"
    inputField.value = 'New value';

    // 3단계: 스타일 변경
    messageParagraph.style.color = 'blue';
    messageParagraph.classList.add('highlight');

    // 4단계: 이벤트 처리
    changeTextButton.addEventListener('click', function() {
      messageParagraph.textContent = inputField.value;
    });

    // 5단계: 요소 추가 및 제거
    const newParagraph = document.createElement('p');
    newParagraph.textContent = 'This is a new paragraph.';
    contentDiv.appendChild(newParagraph);

    // 3초 후에 새 요소 제거
    setTimeout(() => {
      contentDiv.removeChild(newParagraph);
    }, 3000);
  </script>
</body>
</html>

이 예제는 HTML 요소를 선택하고, 속성을 읽고 설정하며, 스타일을 변경하고, 이벤트를 처리하고, 요소를 추가 및 제거하는 방법을 보여줍니다. 이를 통해 DOM을 다루는 기본적인 방법을 익힐 수 있습니다.