티스토리 뷰

WEB/JavaScript

[JS] DOM, Event

Harimad 2022. 6. 13. 18:10

DOM

문서 객체 모델(The Document Object Model, 이하 DOM) 은 HTML, XML 문서의 프로그래밍 interface 이다. 

DOM은 문서의 구조화된 표현(structured representation)을 제공하며
프로그래밍 언어가 DOM 구조에 접근할 수 있는 방법을 제공하여 
문서 구조, 스타일, 내용 등을 변경할 수 있게 돕는다.

DOM 은 nodes와 objects로 문서를 표현한다.
이들은 웹 페이지를 스크립트 또는 프로그래밍 언어들에서 사용될 수 있게 연결시켜주는 역할을 담당한다. - Mozilla
const $ = tag => document.querySelector(tag)
const $$ = tag => document.querySelectorAll(tag)

// 태그 하나 선택하기
const title = $('#title')
console.log(title) // <p id="title">JS</p>

console.log({ title })
// {title: p#title}
//     title: p#title   <<- DOM 의 속성이 나온다.
//     [[Prototype]]: Object

// 태그 css 변경하기
title.style.color = 'blue'
console.log({ title }) // title 객체안에 이와같이 나온다. => outerHTML: "<p id=\"title\" style=\"color: blue;\">JS</p>"

// 태그 여러개 선택하기
const items = $$('.item')
console.log(items) // NodeList(4) [li.item, li.item, li.item, li.item]

// 태그 지우기
const list = $('.list')

list.firstElementChild.remove()
list.lastElementChild.innerHTML = '<a>마지막 자식요소에 추가</a>'

 

Event

const $ = tag => document.querySelector(tag)
const $$ = tag => document.querySelectorAll(tag)

// 이벤트 핸들링
const btn = $('#btn')

// 모든 이벤트리스너 객체는 인자로 이벤트가 들어감
btn.addEventListener('click', e => console.log(e))

//클릭 후
//event 객체 출력

//PointerEvent {isTrusted: true, pointerId: 1, width: 1, height: 1, pressure: 0, …}
//     isTrusted: true
//     altKey: false
//     altitudeAngle: 1.5707963267948966
//     azimuthAngle: 0
//     bubbles: true
//     button: 0
//     buttons: 0
//     cancelBubble: false
//     cancelable: true
//     clientX: 62
//     clientY: 67
//     composed: true
//     ctrlKey: false
//     currentTarget: null
//     defaultPrevented: false
//     detail: 1
//     eventPhase: 0
//     fromElement: null
//     height: 1
//     isPrimary: false
//     layerX: 62
//     layerY: 67
//     metaKey: false
//     movementX: 0
//     movementY: 0
//     offsetX: 53
//     offsetY: 10
//     pageX: 62
//     pageY: 67
//     path: (5) [button#btn, body, html, document, Window]
//     pointerId: 1
//     pointerType: "mouse"
//     pressure: 0
//     relatedTarget: null
//     returnValue: true
//     screenX: 69
//     screenY: 154
//     shiftKey: false
//     sourceCapabilities: InputDeviceCapabilities {firesTouchEvents: false}
//     srcElement: button#btn
//     tangentialPressure: 0
//     target: button#btn								<== 여기가 많이 쓰임
//     tiltX: 0
//     tiltY: 0
//     timeStamp: 1410.2000002861023
//     toElement: null
//     twist: 0
//     type: "click"
//     view: Window {window: Window, self: Window, document: document, name: '', location: Location, …}
//     which: 1
//     width: 1
//     x: 62
//     y: 67
//     [[Prototype]]: PointerEvent

 

 

 

참고

1. DOM : https://poiemaweb.com/js-dom

2. Event : https://poiemaweb.com/js-event

'WEB > JavaScript' 카테고리의 다른 글

TODO Dom & Event  (0) 2022.06.14
[JS] HTTP API  (0) 2022.06.13
[JS] OOP란? (function, class, new)  (0) 2022.06.13
[JS] 화살표 함수 vs 일반 함수  (0) 2022.06.13
[Interactive_web] WebPage Handing with JS  (0) 2022.04.06
댓글
다크모드
Document description javascript psychology
더보기 ,제목1 태그 호버