본문 바로가기

programming study/JavaScript

39장. DOM(3)

본 내용은 모던 자바스크립트 Deep Dive - 자바스크립트의 기본 개념과 동작 원리를 토대로 작성하였습니다.

39.3 노드 탐색

  • 요소 노드 취득 후 부모, 형제, 자식 노드 등을 탐색
  • Node.prototype
    • parentNode
    • previousSibling
    • firstChild
    • childeNodes
    • 모두 읽기 전용 접근자 프로퍼티이므로 값을 할당할 수 없음
  • Element.prototype
    • previousElementSibling
    • nextElementSibling
    • childeren

39.3.1 공백 텍스트 노드

  • 공백 텍스트 노드 : HTML 요소 사이의 스페이스, 탭, 줄바꿈(개행) 등의 공백 문자는 텍스트 노드 생성
  • 노드 탐색 시, 공백 텍스트 노드에 주의

39.3.2 자식 노드 탐색

  • Node.prototype.childNodes
    • 자식 노드를 모두 탐색
    • NodeList에 담아 반환
    • 텍스트 노드 포함
  • Element.prototype.children
    • 자식 노드 모두 탐색
    • HTMLCollection에 담아 반환
    • 텍스트 노드 미포함
  • Node.prototype.firstChild
    • 첫 번째 자식 노드 반환
    • 텍스트 노드 포함
  • Node.prototype.lastChild
    • 마지막 자식 노드 반환
    • 텍스트 노드 포함
  • Element.prototype.firstElementChild
    • 첫 번째 자식 요소 노드 반환
  • Element.prototype.lastElementChild
    • 마지막 자식 요소 노드 반환

39.3.3 자식 노드 존재 확인

  • Node.prototype.hasChildNodes
    • 자식 노드가 존재하면 true 반환

39.3.4 부모 노드 탐색

  • Node.prototype.parentNode
  • 부모 노드가 텍스트 노드인 경우는 없음
    • 텍스트 노드는 리프 노드이므로

39.3.5 형제 노드 탐색

  • 부모가 같은 형제 노드를 탐색
  • 어트리뷰트 노드는 반환되지 않음
  • Node.prototype.previousSibling
    • 이전 형제 노드 반환
    • 텍스트 노드 포함
  • Node.prototype.nextSibling
    • 다음 형제 노드 반환
    • 텍스트 노드 포함
  • Element.prototype.previousElementSibling
    • 이전 형제 요소 노드 반환
  • Element.prototype.nextElementSibling
    • 다음 형제 요소 노드 반환

39.4 노드 정보 취득

  • Node.prototype.nodeType
    • 노드 타입을 나타내는 상수 반환
    • 노드 타입 상수는 Node에 정의
    • Node.ELEMENT_NODE: 요소 노드 타입을 나타나는 1
    • Node.TEXT_NODE: 텍스트 노드 타입을 나타내는 3
    • Node.DOCUMENT_NODE: 문서 노드 타입을 나타내는 9
  • Node.prototype.nodeName
    • 노드의 이름을 문자열로 반환
    • 요소 노드 : 태그 명을 대문자 문자열로 반환
    • 텍스트 노드 : #text를 반환
    • 문서 노드 : #document를 반환

39.5 요소 노드의 텍스트 조작

39.5.1 nodeValue

  • Node.prototype.nodeValue
  • setter, getter 모드 존재하는 접근자 프로퍼티
  • 노드 객체의 값 반환
  • 노드 객체의 값은 텍스트 노드의 텍스트
  • 문서 노드, 요소 노드의 nodeValue를 참조하면 null 반환

39.5.2 textContent

  • Node.prototype.textContent
  • setter, getter 모두 존재하는 접근자 프로퍼티
  • 요소 노드의 텍스트와 모든 자손 노드의 텍스트를 모두 취득 및 변경
  • 요소 노드의 콘텐츠 영역(시작 태그와 종료 태그 사이) 내의 텍스트 모두 반환
  • 문자열 할당 시, 모든 자식 노드가 할당한 문자열로 텍스트 추가 됨
  • inneText 프로퍼티와 유사
    • CSS 순종적이어서 CSS를 고려해야 하므로 느림

'programming study > JavaScript' 카테고리의 다른 글

39장. DOM(5)  (0) 2022.05.13
39장. DOM(4)  (0) 2022.05.10
39장. DOM(2)  (0) 2022.05.08
39장. DOM(1)  (0) 2022.05.07
38장. 브라우저의 렌더링 과정(2)  (0) 2022.05.06