LeeWang_31
이왕31
LeeWang_31
전체 방문자
오늘
어제
  • 분류 전체보기 (234)
    • 프로젝트 (2)
      • 사이드 프로젝트 (2)
      • Codestates_pre_project (0)
    • 프론트엔드 (169)
      • Html (19)
      • CSS (18)
      • JavaScript (29)
      • Codestates (76)
      • 코딩노트 (27)
    • 백엔드 (10)
      • node (10)
    • 구르는 돌 🌑 (16)
      • Codestates (11)
      • 생각 (4)
      • 공부 흔적 (1)
    • 정보 (18)
      • 오류노트 (2)
      • 인텔리제이 정보 (9)
      • 깃 정보 (3)
      • 기타 정보 (4)
      • 안드로이드스튜디오 정보 (0)
    • CS (7)
      • 이론공부 (7)
    • App (6)
      • Android (3)
      • Kotlin (3)
    • 컴퓨터 수학 (5)
      • 암호론 (5)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • UI/UX
  • 사이드프로젝트
  • 1292
  • css
  • 웹팩
  • figjam
  • 코플릿
  • 코딩애플
  • 안드로이드스튜디오파이어베이스
  • 사용자친화웹
  • DP
  • TODOlist
  • 코드스테이츠
  • codestate
  • 사용자 친화 웹
  • 생활코딩
  • linux
  • 2609
  • 알고리즘
  • html
  • 파이어베이스연동
  • 2693
  • React
  • 안드로이드스튜디오범블비
  • linuix 코드스테이츠
  • JavaScript
  • ubuntu
  • 번들링
  • 자바스크립트
  • 백준

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
LeeWang_31

이왕31

[JavaScript/Web] Dom에 대한 추가 공부
프론트엔드/Codestates

[JavaScript/Web] Dom에 대한 추가 공부

2022. 9. 13. 15:56

코드스테이즈 41기 교육 내용을 정리하고 있습니다.
틀린 부분이 있으면 댓글로 알려주시면 감사하겠습니다. 

 

DOM과 JavaScript

지난 학습 목표였던 'DOM과 JavaScript의 차이에 대해 이해할 수 있다.'가 미흡한것 같아서 Dom에 대한 추가 공부를 하였다.

 

자바스크립트는 Html을 조작하기 위해 만들어진 언어이다.

Dom은 document object model로 스크립트 언어로 Html요소를 제어할수 있도록 웹 문서를 객체화 한것이다.

 

html요소는 하나의 부모 태그와 n개의 자식 태그를 갖을수 있다.

이를 시각화 하면 나무 모양이 나오는데, 이를 dom tree라고 한다.

각가의 요소를 노드라고 한다.

 

웹문서 영역을 제어 할수 있게 제공하는 객체는 document객체이다

document는 앞에서 말한 dom tree의 최상이기 때문에 document를 통해 원하는 요소에 접근할 수 있다.

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<div id="nav">
    <div class="logo"></div>
    <div class="menu-wrapper">
        <div class="menu"></div>
        <div class="menu"></div>
        <div class="menu"></div>
        <div class="profile-photo"></div>
    </div>
</div>
<div id="news-contents">
    <div class="news-content-wrapper">
        <div class="news-picture"></div>
        <div class="news-title"></div>
        <div class="news-description"></div>
    </div>
</div>
<div id="footer">Hello!</div>
</body>
</html>

childrenNodes는 노드의 하위 노드를 보여준다.

document.childNodes는 NodeList(2) [<!DOCTYPE html>, html]를 반환 한다.

document의 하위 노드는 html인것을 알수 있다.

 

노드를 하나씩 접근해서 id가 footer인 노드에 접근해 'Hello!'라는 텍스트를 'World~'로 변경해보자

document.childNodes[1].childNodes[2].childNodes[5].textContent = 'World~'

 

아래와 같이 접근할 수 있다.

document.querySelector('#footer').textContent = 'World~'

 

 

Dom은 Html 코드를 해석해서 요소들을 트리 구조화해 표현한 형식이다

Dom은 자바스크립트를 사용해서 웹 화면의 콘텐츠를 추가, 수정, 삭제하거나 이벤트를 처리 할 수 있도록 프로그래밍 인터페이스를 제공한다.

 

++ 추가로 배운 내용

Dom은 javascript로 프로그램을 작성하여 html을 조작하고, Html의 구조가 자바스크립트 객체의 구조와 같이 트리구조로 되어있다.

  • Dom은 window 객체를 통해 Html에 접근하지 않는다.
  • Html구조와 javascript구조는 동일 하게 트리 구조입니다.

let aElement = document.createElement('a')
aElement.setAttribute('id', 'javascript')
aElement.textContent = 'awesome'

다음의 경우

첫줄은 a태그를 생성합니다.

두번째 줄은 변수에 setAttribute를 하여 id가 javascript로 지정해주었습니다.

마지막줄에 아이디가 javascript인 a태그에 awesome이라는 텍스트를 부여합니다.


appendChild() vs append()

 

둘다 부모 노드에 자식노드를 추가한다.

하지만 차이점이 있다.

  append appendChild
노드객체 o o
문자열 o x
반환값 return  x o
다중 값 허용 o x

자세한 내용은 아래를 참고한다.

https://webruden.tistory.com/634

 

[Javascript] append vs appendChild 차이점 (초간단)

append와 appendChild 메서드는 모두 부모 노드에 자식 노드를 추가하는 메서드입니다. 하지만 두 메서드에도 몇 가지 차이점이 존재합니다. 이번 포스팅에서는 두 메서드의 차이점에

webruden.tistory.com

 

저작자표시 (새창열림)

'프론트엔드 > Codestates' 카테고리의 다른 글

[Git] github 사용  (0) 2022.09.15
[javaScript/Web] 유효성 검사를 하는 회원가입 페이지  (0) 2022.09.14
[JavaScript/Web] Dom다루기  (0) 2022.09.13
[Javascript/Web] DOM의 기초  (0) 2022.09.13
[JavaScript] Javascript Koans  (0) 2022.09.13
    '프론트엔드/Codestates' 카테고리의 다른 글
    • [Git] github 사용
    • [javaScript/Web] 유효성 검사를 하는 회원가입 페이지
    • [JavaScript/Web] Dom다루기
    • [Javascript/Web] DOM의 기초
    LeeWang_31
    LeeWang_31
    이왕 할 거면 기분 좋게

    티스토리툴바