코딩 스쿨 JavaScript

언어선택 : HTMLCSSJAVAJAVASCRIPTMYSQLSQL PHP

JavaScript HTML DOM

JavaScript HTML DOM: 웹 페이지의 동적 조작

HTML DOM(Document Object Model)은 웹 페이지의 구조를 프로그래밍적으로 표현한 객체 모델입니다. JavaScript를 사용하면 이 DOM을 통해 HTML 요소를 선택하고 수정하며, 이벤트를 처리할 수 있습니다. 이 가이드는 JavaScript를 사용하여 HTML DOM을 조작하는 방법을 설명합니다.


1. DOM 소개

1.1. DOM 구조

DOM은 웹 페이지의 모든 요소(HTML 태그)를 객체로 표현하며, 이 객체들은 부모와 자식 관계를 형성하여 트리 구조를 이룹니다. 예를 들어, 다음과 같은 HTML이 있을 때:

<!DOCTYPE html>
<html>
<head>
    <title>Document Title</title>
</head>
<body>
    <h1>Hello World!</h1>
    <p>This is a paragraph.</p>
</body>
</html>

이 HTML의 DOM 구조는 다음과 같습니다:

Document
 └── html
     ├── head
     │   └── title
     └── body
         ├── h1
         └── p


2. DOM 요소 선택

JavaScript를 사용하여 DOM 요소를 선택하는 방법은 여러 가지가 있습니다. 가장 많이 사용하는 방법은 다음과 같습니다.

2.1. getElementById()

특정 ID를 가진 요소를 선택합니다.

const heading = document.getElementById('myHeading');

2.2. getElementsByClassName()

특정 클래스를 가진 모든 요소를 선택합니다. 이 메서드는 HTMLCollection을 반환합니다.

const paragraphs = document.getElementsByClassName('myClass');

2.3. getElementsByTagName()

특정 태그 이름을 가진 모든 요소를 선택합니다.

const listItems = document.getElementsByTagName('li');

2.4. querySelector()

CSS 선택자와 유사한 문법을 사용하여 첫 번째 요소를 선택합니다.

const firstParagraph = document.querySelector('p');

2.5. querySelectorAll()

CSS 선택자와 유사한 문법을 사용하여 모든 요소를 선택합니다. 이 메서드는 NodeList를 반환합니다.

const allParagraphs = document.querySelectorAll('p');


3. DOM 요소 조작

JavaScript를 사용하여 선택한 DOM 요소를 수정할 수 있습니다.

3.1. 텍스트 변경

textContent 속성을 사용하여 요소의 텍스트를 변경할 수 있습니다.

const heading = document.getElementById('myHeading');
heading.textContent = 'New Heading Text';

3.2. HTML 내용 변경

innerHTML 속성을 사용하여 요소의 HTML 내용을 변경할 수 있습니다.

const content = document.getElementById('content');
content.innerHTML = '<p>This is new content!</p>';

3.3. 스타일 변경

style 속성을 사용하여 요소의 CSS 스타일을 변경할 수 있습니다.

const paragraph = document.querySelector('p');
paragraph.style.color = 'blue'; // 텍스트 색상 변경
paragraph.style.fontSize = '20px'; // 폰트 크기 변경

3.4. 클래스 추가 및 제거

classList 속성을 사용하여 요소의 클래스 목록을 조작할 수 있습니다.

const element = document.getElementById('myElement');
element.classList.add('newClass'); // 클래스 추가
element.classList.remove('oldClass'); // 클래스 제거


4. DOM 요소 추가 및 삭제

JavaScript를 사용하여 DOM에 새로운 요소를 추가하거나 기존 요소를 삭제할 수 있습니다.

4.1. 요소 추가

createElement() 메서드를 사용하여 새로운 요소를 만들고, appendChild() 메서드를 사용하여 부모 요소에 추가할 수 있습니다.

const newParagraph = document.createElement('p'); // 새로운 <p> 요소 생성
newParagraph.textContent = 'This is a new paragraph.'; // 텍스트 추가
document.body.appendChild(newParagraph); // <body>에 추가

4.2. 요소 삭제

removeChild() 메서드를 사용하여 특정 요소를 삭제할 수 있습니다.

const paragraphToRemove = document.getElementById('removeMe');
document.body.removeChild(paragraphToRemove); // 삭제할 요소 제거


5. 이벤트 처리

JavaScript를 사용하여 DOM 요소에 이벤트를 처리할 수 있습니다.

5.1. 클릭 이벤트

const button = document.getElementById('myButton');
button.addEventListener('click', function() {
    alert('Button was clicked!'); // 버튼 클릭 시 알림 표시
});

5.2. 마우스 이벤트

마우스 오버 및 아웃 이벤트를 처리할 수 있습니다.

const hoverElement = document.getElementById('hoverMe');
hoverElement.addEventListener('mouseover', function() {
    hoverElement.style.backgroundColor = 'yellow'; // 마우스 오버 시 배경색 변경
});

hoverElement.addEventListener('mouseout', function() {
    hoverElement.style.backgroundColor = ''; // 마우스 아웃 시 배경색 초기화
});


6. 전체 예제: JavaScript로 DOM 조작하기

아래는 JavaScript를 사용하여 DOM을 조작하는 전체 예제입니다.

6.1. HTML 코드

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>JavaScript DOM Example</title>
</head>
<body>
    <h1 id="myHeading">Hello, World!</h1>
    <button id="myButton">Click Me</button>
    <p id="removeMe">This paragraph will be removed.</p>
    <script src="script.js"></script>
</body>
</html>

6.2. JavaScript 코드 (script.js)

document.addEventListener('DOMContentLoaded', function() {
    const heading = document.getElementById('myHeading');
    heading.textContent = 'New Heading Text'; // 텍스트 변경

    const button = document.getElementById('myButton');
    button.addEventListener('click', function() {
        alert('Button was clicked!'); // 클릭 이벤트 처리

        const paragraphToRemove = document.getElementById('removeMe');
        document.body.removeChild(paragraphToRemove); // 요소 삭제
    });
});


7. 요약

JavaScript HTML DOM은 웹 페이지의 구조를 프로그래밍적으로 조작할 수 있는 강력한 도구입니다. JavaScript를 사용하여 HTML 요소를 선택하고, 수정하며, 이벤트를 처리할 수 있습니다.

  • DOM 요소 선택: getElementById(), querySelector() 등을 사용하여 요소 선택.
  • DOM 조작: textContent, innerHTML, style 속성을 사용하여 요소 수정.
  • 요소 추가 및 삭제: createElement(), appendChild(), removeChild() 메서드를 사용하여 요소 관리.
  • 이벤트 처리: addEventListener()를 사용하여 다양한 사용자 상호작용 처리.

JavaScript를 통해 더욱 동적이고 상호작용이 풍부한 웹 애플리케이션을 개발할 수 있습니다.


copyright ⓒ 스타트코딩 all rights reserved.
이메일 : startcodingim@gamil.com