일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- DBMS
- SQL
- git
- 차이점
- group by
- analytics4
- MariaDB
- API
- 트랜잭션
- 티스토리챌린지
- spring
- IntelliJ
- JPA
- Linux
- top
- PostgreSQL
- Python
- 명령어
- rsync
- mysql
- docker
- 오블완
- MongoDB
- 리눅스
- Javascript
- java
- oracle
- mssql
- 자바
- network
- Today
- Total
hanker
JavaScript - JavaScript에서 DOM 조작 방법 본문
1. JavaScript가 뭘까?
2. JavaScript를 시작하기
3. JavaScript의 기본 문법
4. JavaScript 제어문
5. JavaScript 함수
6. JavaScript에서 객체와 배열은 무엇일까?
7. JavaScript에서 DOM 조작 방법
JavaScript는 웹 페이지의 요소를 조작하여 동적인 웹 애플리케이션을 만들 수 있다.
DOM(Document Object Model)은 웹 페이지의 구조를 표현하는 프로그래밍 인터페이스로, JavaScript를 통해 HTML 요소를 읽고, 수정하고, 삭제하거나 새로운 요소를 추가할 수 있게 해준다.
이번 글에서는 DOM의 개념과 주요 조작 방법을 알아보자!
1. DOM이란?
DOM은 웹 페이지의 HTML 문서를 트리 형태로 표현한 구조이다.
이를 통해 JavaScript로 HTML 문서의 각 요소에 접근하고 조작할 수 있다.
<!DOCTYPE html>
<html>
<head>
<title>Sample Page</title>
</head>
<body>
<h1 id="title">Hello, Hanker!</h1>
<p class="description">Sample Page</p>
<button onclick="fn_alert()">알림</button>
</body>
</html>
위 HTML코드의 DOM 구조는 아래와 같이 표현된다. (트리구조)
- html
- head
- title
- body
- h1 (id="title")
- p (class="description")
- button
2. DOM 요소 선택
JavaScript는 DOM 요소를 선택하기 위해 다양한 메서드를 제공한다.
위 코드로 예를들어 알아보자
1. getElementById : ID를 기준으로 요소를 선택핟나.
let title = document.getElementById("title");
console.log(title); // <h1 id="title">Hello, Hanker!</h1>
2. getElementsByClassName : 클래스를 기준으로 요소를 선택하며, 배열과 비슷한 객체를 반환한다.
let paragraphs = document.getElementsByClassName("description");
console.log(paragraphs[0]); // <p class="description">Sample Page</p>
3. getElementsbyTagName : 태그 이름을 기준으로 요소를 선택한다.
let buttons = document.getElementsByTagName("button");
console.log(buttons[0]); // <button>알림</button>
4. querySelector : CSS 선택자를 사용하여 첫 번째 요소를 선택한다.
let title = document.querySelector("#title"); // ID 선택
let paragraph = document.querySelector(".description"); // 클래스 선택
5. querySelectorAll : CSS 선택자를 사용하여 모든 요소를 선택하며, NodeList를 반환한다.
let allParagraphs = document.querySelectorAll(".description");
console.log(allParagraphs); // NodeList(1) [p.description]
3. DOM 요소 조작
1. 텍스트 변경 : innerText 또는 textContent를 사용하여 요소의 텍스트를 변경할 수 있다.
let title = document.getElementById("title");
title.innerText = "Welcome to JavaScript!"; // 텍스트 변경
2. HTML 변경 : innerHtml을 사용하여 요소의 HTML 내용을 변경할 수 있다.
let paragraph = document.querySelector(".description");
paragraph.innerHTML = "<strong>Updated content!</strong>";
3. 스타일 변경 : style 속성을 사용하여 CSS를 직접 수정할 수 있다.
let title = document.getElementById("title");
title.style.color = "blue";
title.style.fontSize = "24px";
4. 속성 변경 : setAttribute 와 getAttribute를 사용하여 요소의 속성을 추가하거나 수정한다.
let button = document.querySelector("button");
button.setAttribute("disabled", true); // 버튼 비활성화
console.log(button.getAttribute("disabled")); // "true"
이벤트 처리
DOM 요소에 이벤트를 추가하여 사용자와 상호작용할 수 있다.
1. 이벤트 추가 : onclick 속성 또는 addEventListener을 직접 설정
function fn_alert() {
document.getElementById("title").innerText = "알림창";
}
let button = document.querySelector("button");
button.addEventListener("click", function() {
alert("알림창!!");
});
2. 이벤트 제거 : removeEventListener 를 사용하여 이벤트를 제거한다.
function handleClick() {
console.log("Button clicked!");
}
button.addEventListener("click", handleClick);
button.removeEventListener("click", handleClick);
5. DOM 요소 추가 및 삭제
1. 요소 추가 : createElement와 appendChild를 사용하여 새 요소를 추가한다.
let newParagraph = document.createElement("p");
newParagraph.innerText = "New Sample Page!";
document.body.appendChild(newParagraph);
2. 요소 삭제 : remove 메서드를 사용하여 요소를 삭제한다.
let paragraph = document.querySelector(".description");
paragraph.remove();
정리
DOM 조작은 JavaScript를 사용해 웹 페이지를 동적으로 만들 수 있는 가장 중요한 기술이다.
요소를 선택하고, 수정하며, 이벤트를 처리하는 방법을 잘 이해하면 복잡한 웹 애플리케이션도 구현할 수 있다.
다음 단계에서는 JavaScript의 유용한 기능과 ES6+의 주요 기능들을 살펴보자!
끝.