Coding 공부/JavaScript

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

CBJH 2024. 5. 29.
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을 다루는 기본적인 방법을 익힐 수 있습니다.

댓글