ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • DOM 이해하기
    concept/HTML, CSS, DOM 2020. 10. 9. 22:19

    DOM과 자바스크립트의 차이

     

    DOM은 웹 페이지를 스크립트 또는 프로그래밍 언어들에서 사용될 수 있게 연결시켜주는 역할을 담당합니다. 자바스크립트가 DOM을 통해서 웹페이지에 접근할 수 있습니다.

     

     

     

    웹 페이지는 일종의 문서(document)입니다. DOM 은 동일한 문서를 표현하고, 저장하고, 조작하는 방법을 제공합니다. 자바스크립트와 같은 스크립팅 언어를 이용해 DOM 을 수정 가능합니다.

    이 차이에 대해서 조금 더 깊게 알아보고 싶다면 해당 문서를 통해서 공부해보시면 좋겠습니다.

     

    부모 엘리먼트를 찾는 방법

    Element.closest()

    MDN 링크

    : 기준 Element 에서부터 closest() 메소드를 통해 자신부터 부모 요소 단위로 출발하여 설정해 준 선택자에 만족할 때까지 탐색합니다. (document 루트까지 이동). 이 중 가장 가깝게 조건에 만족한 부모 엘리먼트가 반환되며, 조건에 만족한 요소가 없으면 null 값을 반환합니다.

     

    <!doctype html>
    <html>
        <head>
            <title>codestates</title>
        </head>
        <body>
            <H1>Welcome</H1>
            <HR>
            Welcome to codestates!
        </body>
    </html>
    let el = document.querySelector('span');
    
    let parent = el.closest("div"); 
    console.log(parent); // output은 아래와 같습니다.
    // "<div> 
    //    <span> Welcome to Codestates </span> 
    // </div>"
    
    let grandparent = el.closest("body"); 
    console.log(grandparent); // output은 body의 전체가 나오게 됩니다.

     

    Node.parentElement

    MDN 링크

    : 현재 엘리먼트의 부모 엘리먼트(object 혹은 null)를 읽기 전용으로 리턴합니다.

    <!doctype html>
    <html>
        <head>
            <title>codestates</title>
        </head>
        <body>
            <H1>Welcome</H1>
            <HR>
            Welcome to codestates!
        </body>
    </html>
    let parent = document.querySelector('span').parentElement;
    console.log(parent); // output은 아래와 같습니다.
    // "<div> 
    //    <span> Welcome to Codestates </span> 
    // </div>"
    
    let grandparent = parent.parentElement;
    console.log(grandparent); // output은 body의 전체가 나오게 됩니다.
    
    let superGrandparent = document.parentElement;
    console.log(superGrandparent); // output --> null

     

     

    'concept > HTML, CSS, DOM' 카테고리의 다른 글

    styled-components VS emotion 과연 어떤 차이가 있을까?  (2) 2023.12.07
    scrollHeight, clientHeight, offsetHeight  (0) 2022.11.10
    DOM 조작하기  (0) 2020.10.11
    HTML 기본 틀  (0) 2020.07.01
    CSS 질문 정리  (0) 2020.04.08

    댓글

Designed by Tistory.