ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • DOM (Document Object Model)
    concept/javascript 2020. 4. 11. 20:58
    •  
    • HTML 문서의 구조적 관계와 속성에 대한 모델

    • DOM 은 html 문서를 object type으로 받아와서 javascript로 활용하는 것

    • HTMl 문서를 대표하는 트리 구조

    • JavaScript에서 document 객체를 통해 전역으로 접근할 수 있음

    • Dom이 JavaScript 언어의 한 부분은 아님!

    • 자바스크립트 언어를 다루게 해주는 API 이다.

    • console.dir($0) : element에 딸려있는 각 종 속성들을 확인할 수 있음. 자주 확인하는 속성들은 아래 참고

      • nodeName

      • className : class 문자열

      • innerText: 엘리먼트에 담긴 내용 (문자만)

      • innerHTML : 엘리먼트에 담긴 내용 (태그포함) ⇒ 실제로 내용을 바꿀 수 있다. 태그까지 포함해서!

      • textContent : 엘리먼트에 담긴 내용 (공백포함) ⇒ 실제로 내용을 바꿀 수 있다. 태그를 적어도 그냥 문자로 나타남

      • value : form 입력값 ⇒ 웹사이트 form에서 입력한 값을 받아온다. (예를 들어 아이디 창에 아이디를 입력하고 $0.value를 하면 그 값이 콘솔에 출력된다.)

      • style : 스타일 객체

      • attributes : 속성 객체

      • childNodes / parentNode

      • children / parentElement

      • dataset : 데이터 속성 (아래 예제 참고)

      • offsetTop / offsetLeft / offsetWidth / offsetHeight
        • clientTop / clientLeft / clientWidth / clientHeight

        • onEventName (ex. onClink)

    • HTML element를 JavaScript를 이용해 가져오는 방법

      • tag name을 이용 : getElementsByTagName
      • id 속성을 이용 : getElementById
      • class name을 이용 : getElementsByClassName
      • selector를 이용 : querySelector / querySelectorAll
    • ADDING EVENT HANDLER

      • Event: 어떠한 동작의 발생을 전달하기 위해 객체가 보낸 메시지 (ex. 웹페이지의 로드, 버튼클릭, 브라우저 창 리사이즈)
      • DOM을 이용해 이벤트 핸들러를 추가할 수 있음
        • onEventName (ex. onClick) 아래예제참고

        • 어떤 이벤트들이 있는지 개발자 도구 eventlistener에서 확인할 수 있다.

        •  


     

    dataset

    /*html*/
    <div data-user="steve" data-role="moderator" data-user-id="1">
      Steve Lee
    </div>
    
    /*Javascript*/
    $0.dataset.user //'steve'
    $0.dataset.role //'moderator'
    $0.dataset.userId //'1'

     

    event

    let loginButton = document.querySelector('.primary-btn')
    loginButton.onclick = function () {
      console.log('버튼이 눌렸어요!')
    }
    loginButton.onclick = function() {
      console.log(inputElement.value)
    } //여기서 inputElement는 ID창에 입력한 값

    'concept > javascript' 카테고리의 다른 글

    this / call(), apply(), bind()  (0) 2020.04.14
    동기적 호출 vs 비동기적 호출  (0) 2020.04.14
    Parameter  (0) 2020.04.02
    객체 지향 JavaScript (Class)  (0) 2020.04.02
    Closure (클로져)  (0) 2020.04.02

    댓글

Designed by Tistory.