[JavaScript] 문서객체모델
ㅁ문서 객체 모델
문서 객체 조작
Document Object Model: 문서 객체를 조합해 만든 전체적인 형태
DOMContentLoaded 이벤트
- 웹 브라우저가 문서 객체를 모두 읽고 나서 실행하는 이벤트
- HTML 코드를 JavaScript로 조작
document.addEventListener('DOMContentLoaded', () => {
const h1 = (text) => `<h1>${text}</h1>`
document.body.innerHTML += h1('DOMContentLoaded 이벤트 발생')
})
문서 객체 가져오기
이름 | 선택자 형태 | 설명 |
---|---|---|
태그 선택자 | 태그 | 특정 태그를 가진 요소를 추출 |
아이디 선택자 | #아이디 | 특정 id속성을 가진요소를 추출 |
클래스 선택자 | .클래스 | 특정 class속서을 가진 요소를 추출 |
속성 선택자 | [속성=값] | 특정 속성 값을 갖고있는 요소를 추출 |
후손 선택자 | 선택자_A 선택자_B | 선택자_A아래에 있는 선택자_B를 선택 |
- querySelector() : 문서 객체 읽어들이는 함수
- querySelectorAll() : 문서 객체 여러개를 배열로 읽어들이는 함수
- 문서객체.textContent =’’ : 입력된 문자열을 그대로 기입
- 문서객체.innerHTML =’’ : 입력된 문자열을 HTML형식으로 기입
- 문서객체.setAttribute(속성이름, 값) : 특정 속성에 값을 지정
- 문서객체.getAttribute(속성이름) : 특정 속성을 추출
document.addEventListener('DOMContentLoaded',()=>{
const header = document.querySelector('h1')
const a = document.querySelector('#a')
const b = document.querySelector('#b')
const rects = document.querySelector('.rect')
header.textContent = 'HEADERS'
hearer.style.color = 'white'
header.style.backgroundColor = 'black'
header.style.padding = '10px'
a.textContent ='<h1>textContent속성</h1>'
b.textContent ='<h1>textContent속성</h1>'
rects.forEach(rect, index)=>{
const width = (index+1)*100
const src = `https://placekitten.com/${width}/250`
rects.setAttribute('src',src)
}
})
문서 객체 조작
- document.createElement(문서 객체 이름)
- 부모 객체.appendChild(자식 객체)
- removeChild() : 문서 객체 제거
- appendChild() 메소드 등으로 부모 객체와 이미 연결이 완료된 문서 객체의 경우 parentNode 속성으로 부모 객체에 접근할 수 있으므로, 일반적으로 어떤 문서 객체를 제거할 때는 다음과 같은 형태의 코드를 사용
문서객체.parentNode.removeChild(문서객체)
document.addEventListener('DOMContentLoaded', () => {
const header = document.createElement('h1')
header.textContent='문서 객체 동적으로 생성'
header.setAttribute('data-custom','사용자 정의 속성')
header.style.color = 'white'
header.style.backgroundColor = 'black'
document.body.appendChild(header)
})
- 문서객체.addEventListener(이벤트이름, 콜백함수)
- 문서객체.removeEventListener(이벤트이름, 이벤트리스너)
h1.addEventListener('click',{event} => {
counter++
h1.textContent=`클릭횟수:${counter}`
})
- 키보드 이벤트
- keydown : 키가 눌릴 때 실행. 키보드를 누르고 있을때도 입력 실행됨
- keypress : 키가 입력되었을 때 실행(웹 브라우저에서 아시아권문자를 제대로 처리못하는 문제가 있음)
- keyup : 키보드에서 키가 떨어질 때 실행
- 키보드 키 코드
- code : 입력한 키
- keyCode : 입력한 키를 나타내는 숫자
- ${event.altKey} : alt키 눌렀는지
- ${event.ctrlKey} : ctrl키 눌렀는지
- ${event.shiftKey} : shift키 눌렀는지 → code속성은 입력한 키를 나타내는 문자열이 들어있음
댓글남기기