[자바스크립트] DOM

2025. 5. 11. 23:26·frontend/JavaScript

DOM이란?

DOM(문서 객체 모델)은 HTML, XML 문서의 프로그래밍 인터페이스이다.

DOM 은 문서 구조, 스타일, 내용 등을 변경할 수 있게 한다.

주로 웹 페이지의 요소를 선택, 수정, 추가, 제거할 때 사용된다.

 

부모, 자식 탐색

자식태그를 기준으로 부모태그를 탐색할 수 있고, 부모태그를 기준으로 자식태그를 탐색할 수 있다.

body태그 안에 div, p태그가 작성된 코드이다.

<body>
	<div>
        <p>child01</p>
        <p>child02</p>
        <p>child03</p>
    </div>
</body>

여기서 자식태그인 p태그를 기준으로 부모태그인 div태그를 탐색해보면

let child03 = document.getElementsByTagName("p")[2];
let divParent = child03.parentNode;

이렇게 작성할 수 있다. 먼저 자식태그요소를 가지고와서 parentNode 를 사용하여 부모태그를 탐색한다.

 

반대로 부모태그를 기준으로 자식태그를 탐색해보면

let parent = document.getElementsByTagName("div")[0];
let children = parent.children;
let child02 = children[1];

child02.style.backgroundColor="pink";

이렇게 작성할 수 있다.

이렇게 노드에 접근해 style과 같은 속성을 변경할 수도 있다.

 

Element 생성, 텍스트, 속성 추가

  • element 객체 생성 : createElement("tagName")
    • let txt = document.createTextNode("텍스트 객체 생성");
      div.appenChild(txt); //div태그 아래 자식요소로 txt를 넣는다.
      // <div>텍스트 객체 생성</div>
  • 텍스트 객체 생성 : createTextNode("text")
    • let div = document.createElement("div");
      // <div></div>
  • 속성 생성 : createAttribute("attrName")
    • let attr = document.createAttributeNode("style");
      //style="";
      attr.nodeValue = "border: 2px solid blue"; //속성값 넣어준다.
      // style = "border: 2px solid blue";
  • 속성 추가 : setAttributeNode(Attribute)
    • div.setAttributeNode(attr);
      // <div style="border:2px solid blue">텍스트 객체 생성</div>
      div.setAttribute("style","border:2px solid blue");

위의 결과를 바탕으로 전체를 body에 추가하면

document.body.appenChild(div);
//body아래의 자식요소로 위에서 생성한 div태그가 들어간다.

예제

원래 있던 img 태그와 내가 만든 img 태그를 바꾸는 예제이다.

// img 엘리먼트 생성
let img = document.createElement("img");
img.setAttribute("src","../img01.png");

//화면에 추가
let div = document.getElementById("imgView");
let chd = document.querySelector("#imgView>img");

div.replaceChild(img,chd); // img와 chd를 바꾼다.

 

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

[자바스크립트] 함수  (0) 2025.05.15
[자바스크립트] nullish 병합 연산자  (0) 2025.05.15
[자바스크립트] location 객체  (0) 2025.05.11
[자바스크립트] - 객체  (0) 2025.05.11
[자바스크립트] 콜백함수  (0) 2025.05.11
'frontend/JavaScript' 카테고리의 다른 글
  • [자바스크립트] 함수
  • [자바스크립트] nullish 병합 연산자
  • [자바스크립트] location 객체
  • [자바스크립트] - 객체
eun_log
eun_log
  • eun_log
    개발은
    eun_log
  • 전체
    오늘
    어제
    • 분류 전체보기 (75)
      • 코테 (17)
      • CS (6)
        • 자료구조, 알고리즘 (3)
        • 네트워크 (0)
        • 데이터베이스 (2)
        • 운영체제 (0)
      • frontend (32)
        • JavaScript (29)
        • html&css (1)
        • project_study (2)
      • backend (15)
        • Java (15)
      • project (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • 글쓰기
    • 관리
  • 링크

  • 공지사항

  • 인기 글

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
eun_log
[자바스크립트] DOM
상단으로

티스토리툴바