Front-end/Javascript
[JS] DOM 조작하기
집으로 감자
2025. 1. 15. 14:35
DOM
Document Object Model = HTML 문서를 트리 구조로 구조화한 브라우저가 제공하는 객체
DOM Tree 에서 각각의 DOM 요소 = 노드(Node)
Javascript가 DOM API를 통해 페이지 요소를 조작(CRUD)할 수 있다
다양한 DOM API에 대해 알아보자
문서 탐색 및 선택
document.querySelector(선택자)
제공한 선택자 또는 선택자 뭉치와 일치하는 문서 내 첫 번째 요소를 반환한다
const element = document.querySelector(selectors);
선택자에 태그명을 입력할 경우, 아무것도 붙이지 않는다
class명을 입력할 경우, 앞에 .을 붙여준다
id명을 입력할 경우, 앞에 #을 붙여준다
예시 코드
querySelector을 이용해서 div 태그의 폰트 색깔 바꾸기
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>QuerySelector</title>
<style></style>
</head>
<body>
<div class="class1">첫번째 div</div>
<script>
document.querySelector("class1").style.color = "tomato"
</script>
</body>
</html>
document.querySelectorAll(선택자)
지정된 셀렉터 그룹에 일치하는 document의 Element 리스트를 나타내는 정적 NodeList를 반환한다
const elementList = parentNode.querySelectorAll(selectors);
해당 선택자를 가지고 있는 모든 Dom 요소를 배열의 형태로 반환하기 때문에
index 혹은 배열 메서드로 접근할 수 있다
예시 코드
1. querySelectorAll을 이용해서 첫번째 div 태그의 폰트 색깔 바꾸기
2. querySelectorAll을 이용해서 모든 div 태그의 폰트 색깔 바꾸기
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>QuerySelector</title>
<style></style>
</head>
<body>
<div class="class1">첫번째 div</div>
<div class="class2">두번째 div</div>
<div class="class3">세번째 div</div>
<script>
document.querySelectorAll("class1")[0].style.color = "tomato" // 1번
document
.querySelectorAll("class1")
.forEach(div => div.style.color = "tomato") // 2번
</script>
</body>
</html>
document.getElementsByTagName(선택자)
HTML 요소의 HTMLCollection과 주어진 태그명을 반환한다
const elements = document.getElementsByTagName(name);
document.getElementById(선택자)
주어진 문자열과 일치하는 id 속성을 가진 요소를 찾고, 이를 나타내는 Element 객체를 반환한다
const element = document.getElementById(id);
document.getElementsByClassName(선택자)
주어진 클래스를 가진 모든 자식 엘리먼트의 실시간 HTMLCollection을 반환한다
const elements = element.getElementsByClassName(names);
스타일 조작
element.style.propertyName = value
DOM 요소의 인라인 스타일 속성을 설정한다
element.style.속성명 = 속성값
이벤트 처리
addEventListener(event, Listener)
DOM 요소에 이벤트 리스너를 추가한다
addEventListener(이벤트 종류, 이벤트 발생시 실행할 콜백 함수);
[참고자료]
https://developer.mozilla.org/ko/
반응형