[javascript] 문서 객체 모델 (DOM) Study note
“혼자 공부하는 자바스크립트” 스터디 모임 정리 노트 입니다. 📚
문서 객체 조작하기
-
문서 객체 모델 (Document Object Model)
<html>
,<head>
,<body>
,title
,div
등 HTML 내 요소(Element)들을 자바스크립트 에서는 문서 객체(Document Object) 라고 부른다. 이 문서 객체를 조합하여 만든 전체적인 형태를 문서 객체 모델(DOM)이라고한다. -
document 객체 document 객체는 DOM 제어를 위한 다양한 method를 지원한다. MDN 링크 : https://developer.mozilla.org/ko/docs/Web/API/Document
이벤트 활용
-
이벤트 모델의 종류
-
표준 이벤트 모델
document.body.addEventListener('keyup', (event) => { }) // document.이벤트를 감지하는 HTML요소.addEventListener('이벤트종류', (event) => { })
-
고전 이벤트 모델
document.body.onkeyup = (event) => { } // document.이벤트를 감지하는 HTML요소.on이벤트종류 = (event) => { }
-
인라인 이벤트 모델
<script> const listener = (event) => { } </script> <body onkeyup="listener(event)"> </body> <!-- <이벤트를 감지하는 HTML요소 on이벤트종류="함수명"> -->
※ 모든 이벤트 모델에서 실행되는 함수는 첫번째 매개변수로 event 객체를 받는다.
※
DOMContetntLoaded
와 같이 이벤트를 감지할 Element가 필요하지 않은 경우도 있다.관련 MDN 링크 : https://developer.mozilla.org/en-US/docs/Web/API/Event
-
-
이벤트 종류
keydown
.keypress
,keyup
,click
,scroll
,focus
,blur
등 다양한 종류가 있다.관련 MDN 링크 : https://developer.mozilla.org/en-US/docs/Web/Events
-
Keyboard event에는 어떤 키를 눌렀는지 확인하는
event.code
,event.keycode
,event.altKey
,event.ctrlKey
,event.shiftKey
property가 사용된다.※
event.code
의 코드 목록 : https://developer.mozilla.org/en-US/docs/Web/API/UI_Events/Keyboard_event_code_values※
event.keycode
의 코드 목록 : https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/keyCode
-
( + 리액트에서의 이벤트 처리 관련 문서 : https://reactjs.org/docs/handling-events.html )
-
HTML 요소 별 접근 방식
-
<select>
&<option>
event.target.options
: 모든<option>
을 배열로 가지고 있는 property-
event.target.options[Index].value
: 해당 index의 value를 가지고 있는 property event.target.options.selectedIndex
: 선택된 option의 index를 가지고 있는 property<select multiple>
인 경우event.target.options
배열의 각 요소의.selected
Boolean 값으로 확인할 수 있다.
-
<span>
,<p>
,<h1>
등document.querySelector('찾을값').textContent
: 현재 value값을 가지고 있는 property
-
<input type="checkbox">
,<input type="radio"
event.target.checked
: 체크되었는지를 Boolean값으로 가지고 있는 property
-
-
조기 리턴 ( early return ) : 함수 중간 분기점(
if
,switch
등 ) 에서 return 문을 사용하여 나머지 코드를 실행하지 않고 함수를 조기 종료 시키는 것 -
기본 이벤트 막기 :
event.preventDefault()
이벤트 함수 안에서 직접 코딩한 이벤트 외 브라우저가 기본적으로 지원하는 동작을 막는다. ex) 우클릭 시 컨텍스트 메뉴( context menu )를 출력하는 것, submit 버튼을 눌렀을 때 화면을 이동하는 것 등
-
localStorage & sessionStorage 객체
웹 API ( : 브라우저가 제공하는 기능)
웹 브라우저에 데이터를 저장하고 사용하는 객체.
-
localStorage.setItem(key, value)
: 값을 저장한다.localStorage.key
또는localStorage[key]
의 형태로도 사용할 수 있다. localStorage.getItem(key)
: 저장된 값을 추출한다. 위 객체의 형태를 사용할 수도 있다.localStorage.removeItem(key)
: 특정 값을 삭제한다.localStorage.clrear()
: 모든 값을 삭제한다.
※ 위 method는
localStorage
,sessionStorage
가 모두 동일하다.※ MDN : https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage
-