코딩이론/Javascript

chapter.05 DOM 메서드 및 속성

Yeo Wun 2024. 11. 26. 00:02

 

DOM에는 다양한 메서드와 속성 등이 존재한다.

이 메서드들과 속성은 어디에서 온 것일까 하고 고민해 봤는데, html을 객체화 하면서 관련 내용들이 모두 객체로서 사용할 수 있게 되었다고 한다.

그래서 그 객체를 자바스크립트로 불러와 제어하고 수정할 수 있다고 한다.

결국 DOM은 html 요소를 객체화 한 것의 집합체라고 보면 된다.

우리가 자바스크립트 엔진에서 함수와 메서드들을 꺼내와서 사용하는 것처럼, DOM에서도 가지고 와서 쓰는 것 뿐이다.

 

다만, 자바스크립트에서 작성 할 때는 window. 을 써서 어디서부터 온 메소드와 함수인지를 적어주는 것이고 (이는 안 써도 된다 / 이미 내장되어있어서 )

 

DOM에서 가지고 와서 작성할 때에는 구별하기 위해 document. 를 적어주는 것이다.

 

관련해서 자주 쓰는 정보들을 모아 정리해 보았다. ( GPT 이용 )

 

 

1. DOM 메서드 

 

1 ) 요소 찾기 관련 메서드

메서드 설명 예제
getElementById(id) 특정 ID를 가진 요소를 반환 document.getElementById('header')
getElementsByclassname(class) 특정 클래스를 가진 요소들을 반환
(HTML Collection)
document.getElementsByClassName('box')
getElementsByTagName 특정 태그 이름을 가진 요소들을 반환
(HTML Collection)
getElementsByTagName('div')
querySelector(selector) CSS 선택자와 일치하는 첫 번째 요소를 반환 document.querySelector('.box')
querySelectorAll(selector) CSS 선택자와 일치하는 모든 요소를 반환
(NodeList)
document.querySelectorAll('.box')

 

 

2) 요소 생성 및 추가 관련 메서드

메서드 설명 예제
createElement(tag) 새로운 HTML 요소를 생성 document.createElement('div')
createTextNode(text) 새로운 텍스트 노드를 생성 document.createTextNode('Hello!')
appendChild(node) 부모 요소에 자식 노드를 추가 parent.appendChild(child)
append(...nodesOrStrings) 요소나 텍스트를 부모 요소의 끝에 추가 parent.appendChild('Text', childNode)
insertBefore(newNode, referenceNode) 특정 노드 앞에 새 노드를 삽입 parent.inserBefore(newNode, ref)

 

 

3) 요소 삭제 및 교체 관련 메서드

메서드 설명 예제
removeChild(node) 부모 요소에서 특정 자식 노드를 제거 parent.removeChild(child)
replaceChild(newNode,oldNode) 기존 노드를 새로운 노드로 교체 parent.replaceChild(newNode,old)
remove() 요소 자체를 DOM에서 제거(ES6+) element.remove()

 

 

4) 요소 정보 가져오기 관련 메서드

메서드 설명 예제
getAttribute(name) 특정 속성의 값을 반환 element.getAttribute('class')
setAttrbute(name,value) 특정 속성을 추가하거나 값을 설정 element.setAttribute('id','mycat')
removeAttribute(name) 특정 속성을 제거 element.removeAttribute('id')
hasAttribute(name) 특정 속성이 있는지 확인 element.hasAttribute('id')

 

 


 

 

2. DOM 속성

 

1 ) 요소 정보 관련 속성

속성 설명 예제
innerHTML 요소의 html 내용을 반환하거나 설정 element.innerHTML = '<p>Hello!</p>'
innerText 요소의 텍스트 내용을 반환하거나 설정 element.innerText = 'Hello!'
textContent 텍스트 내용을 반환하거나 설정
(html 태그 무시)
element.textContent = 'Hello!'
outerHTML 요소 자체와 내부 html 반환 console.log(element.outerHTML)
id 요소의 ID를 반환하거나 설정 element.id = 'header'
className 요소의 클래스를 반환하거나 설정 element.className = 'box'
classList 클래스의 추가/제거/토글을 위한 객체 element.classList.add('active')

 

 

2 ) 위치와 크기 관련 속성

속성 설명 예제
offsetTop 요소의 위쪽 위치 ( 부모 요소 기준 ) console.log(element.offsetTop)
offsetLeft 요소의 왼쪽 위치 ( 부모 요소 기준 ) console.log(element.offsetLeft)
offsetWidth 요소의 너비 ( 픽셀 단위, 패딩 포함 ) console.log(element.offsetWidth)
offsetHeight 요소의 높이 ( 픽셀 단위, 패딩 포함 ) console.log(element.offsetHeight)

 

 

3 ) 속성과 스타일 관련 속성

속성 설명 예제
attributes 요소의 모든 속성을 반환 (NamedNodeMap) console.log(element.attributes)
style 요소의 CSS 스타일을 설정하거나 반환 element.style.color = 'red'
dataset data-* 속성 접근을 위한 객체 element.dataset.info = 'value'

 

 


 

 

3. DOM 이벤트 관련 메서드

이벤트를 설정하거나 관리하는 메서드도 DOM 메서드에 포함된다.

 

메서드 설명 예제
addEventListener(type, listener) 특정 이벤트에 대한 리스너 추가 button.addEventListener('click', () => alert('Clicked!'))
removeEventListener(type, listener) 리스너 제거 button.removeEventListener('click', myFunction)
dispatchEvent(event) 이벤트를 트리거 element.dispatchEvent(new Event('customEvent'))

'코딩이론 > Javascript' 카테고리의 다른 글

chapter.07 for 반복문  (1) 2024.11.27
chapter.06 조건문  (2) 2024.11.26
chapter.04 DOM  (0) 2024.11.25
chapter.03 변수와 상수  (0) 2024.11.22
chapter.02 자료형  (0) 2024.11.21