노드
- node
- HTML DOM은 node라고 불리는 계층적 단위에 정보를 저장하고 있다.
- 노드 트리는 최상위 레벨인 루트 노드부터 가장 낮은 레벨인 텍스트 노드까지 뻗어 내려간다.
- 노드의 종류
- 문서 노드(document node)
- HTML 문서 전체를 나타내는 노드
- 요소 노드(element node)
- 모든 HTML 요소는 요소 노드이며, 속성 노드를 가질 수 있는 유일한 노드
- 속성 노드(attribute node)
- 모든 HTML 요소의 속성은 속성 노드이며, 요소 노드에 관한 정보를 가지고 있음
- 해당 요소 노드의 자식 노드에는 포함되지 않음
- 텍스트 노드(text node)
- HTML 문서의 모든 텍스트는 텍스트 노드
- 주석 노드(comment node)
- HTML 문서의 모든 주석은 주석 노드
- 문서 노드(document node)
- 노드 접근 방법
- getElementsByTagName() 메소드 이용
- 노드 간의 관계를 이용하여 접근하는 방법 (프로퍼티 이용)
- parentNode - 부모노드
- childNodes - 자식노드 리스트
- var listItems = document.getElementById("list").childNodes;
- listItems[1].firstChild.nodeValue = “변경내용”;
- firstChild - 첫번째 자식노드
- lastChild - 마지막 자식노드
- nextSibling - 다음 형제노드
- previousSibling - 이전 형제노드
- 노드에 대한 정보 접근
- nodeName
- 노드 고유의 이름을 저장 (태그 이름 대문자로 저장)
- 수정할 수 없는 읽기전용 프로퍼티
- 예시
- document.getElementById("document").innerHTML = document.childNodes[1].nodeName; // HTML
- nodeValue
- 노드의 값을 저장
- 예시
- var headingText = document.getElementById("heading").firstChild.nodeValue;
- nodeType
- 노드 고유의 타입 저장
- 수정할 수 없는 읽기 전용 프로퍼티
- 예시
- var headingType = document.getElementById("heading").firstChild.nodeType;
- nodeName
- 노드의 관리
- 노드의 추가
- 변수명.appedChild()
- 새로운 노드를 해당 노드의 자식 노드 리스트(child node list)의 맨 마지막에 추가
- .insertBefore(새로운자식노드, 기존자식노드)
- 새로운 노드를 특정 자식노드 앞에 추가
- insertData(인덱스, “새로운텍스트”)
- 텍스트 노드의 텍스트 데이터의 새로운 텍스트 추가
- 변수명.appedChild()
- 노드의 생성
- document.createElement(”요소”)
- 새로운 요소 노드 생성
- document.createAttribute(”속성”)
- 새로운 속성 노드 생성
- 이미 존재하는 요소 노드에 속성 노드 생성하고 싶다면 setAttribute() 메소드 사용
- document.createTextNode(”텍스트”)
- 새로운 텍스트 노드 생성
- document.createElement(”요소”)
- 노드의 제거
- 변수명.removeChild(변수명2)
- 자식노드 리스트에서 특정 자식노드 제거
- 변수명.removeAttribute(”속성”)
- 속성이름을 이용하여 특정 속성 노드 제거
- 변수명.removeChild(변수명2)
- 노드의 복제
- 복제할노드.cloneNode(true/false(자식노드 복제여부- true는 자식노드도 같이 복제, false는 속성노드만 복제))
- 기존 노드 복제
- ex) parent.appendChild(originItem.cloneNode(true));
- 복제할노드.cloneNode(true/false(자식노드 복제여부- true는 자식노드도 같이 복제, false는 속성노드만 복제))
- 노드의 추가
- 노드의 조작
- 노드의 값 변경
- nodeValue 프로퍼티 사용하여 특정 노드 값 변경
- setAttribute() 메소드로 속성 노드의 속성값 변경
- 텍스트 노드값 변경
- nodeValue 프로퍼티 사용
- ex) para.firstChild.nodeValue = "텍스트 변경";
- nodeValue 프로퍼티 사용
- 속성노드의 값 변경
- setAttribute() 메소드 사용
- document.getElementsByTagName("p")[0].setAttribute("class", "para");
- setAttribute() 메소드 사용
- 요소 노드의 교체
- replaceChild() 메소드 사용
- 교체할 노드 = 부모노드.replaceChild(새로운자식노드, 기존자식노드)
- replaceChild() 메소드 사용
- 텍스트 노드의 데이터 교체
- replaceData() 메소드 사용
- 텍스트노드.replaceData(인덱스, 교체할문자수, “새로운텍스트”)
- replaceData() 메소드 사용
- 노드의 값 변경
브라우저 객체 모델(BOM)
- Window 객체
- Window 객체
- JS의 모든 객체, 전역함수, 전역변수들은 자동으로 window 객체의 프로퍼티가 된다
- window 객체의 메소드는 전역함수이며, window 객체의 프로퍼티는 전역변수
- 문서객체모델(DOM)의 요소들도 window 객체의 프로퍼티
- 관련 메소드
- 브라우저 새창열기
- window.open(”경로”, “이름”, 옵션들)
- 브라우저 창닫기
- 변수명.close();
- 브라우저 새창열기
- Window 객체
- Location 객체
- Location 객체
- 현재 브라우저에 표시된 HTML 문서의 주소를 얻거나, 브라우저에 새 문서를 불러올 때 사용
- 관련 메소드
- 현재 문서의 URL
- location.href
- 현재 문서의 호스트 이름
- location.hostname
- 현재 문서의 파일 경로명
- location.pathname
- 현재 창에 문서 불러오기
- location.assgin(”경로/파일명”)
- location.replace(”경로/파일명”)
- replace는 브라우저의 히스토리에서 제거(뒤로가기 못함)
- location.reload()
- 현재 문서를 다시 불러오는
- 현재 문서의 URL
- Location 객체
- History 객체
- History 객체
- 브라우저의 히스토리 정보를 문서와 문서상태 목록으로 저장하는 객체
- 관련 메소드
- 히스토리 목록 개수
- history.length
- 히스토리 목록 접근
- 이전 페이지로 가기
- window.history.back();
- n 수만큼 히스토리 목록 사이 이동
- window.history.go(-1);
- 다음 페이지로 가기
- window.history.forward();
- 이전 페이지로 가기
- 히스토리 목록 개수
- History 객체
- Screen 객체
- Screen 객체
- 사용자의 디스플레이 화면에 대한 다양한 정보를 저장하는 객체
- 관련 프로퍼티
- 모니터 크기 반환
- screen.width, screen.height
- 브라우저창 크기 반환
- window.outerWidth, window.outerHeight
- 실제 사용할 수 있는 화면 크기
- screen.availWidth, screen.availHeight
- 모니터 크기 반환
- Screen 객체
- Navigator 객체
- Navigator 객체
- 브라우저 공급자 및 버전정보 등을 포함한 브라우저에 대한 다양한 정보 저장하는 객체
- 관련 프로퍼티
- 현재 사용하고 있는 브라우저의 이름
- navigator.appName
- navigator.appCodeName
- 현재 브라우저의 버전
- navigator.appVersion
- navigator.userAgent
- 기본 언어 설정
- navigator.language
- 현재 사용하고 있는 브라우저의 이름
- Navigator 객체
- 대화 상자
- alert() 메소드
- window.alert(”메시지”)
- confirm() 메소드
- 메시지 출력 후 사용자가 확인이나 취소 누르면 boolean 값으로 해당 결과 반환
- window.confirm(”메시지”)
- prompt() 메소드
- 메시지 출력 후 사용자가 입력한 문자열 반환
- window.prompt(”메시지”, “입력란의 기본 메시지”)
- showModalDialog()
- 좀 더 복잡한 대화상자 만들기
- alert() 메소드
- 타이머
- 관련 메소드
- window.setTimeout(호출할함수, 밀리초);
- 해당 밀리초가 지난 뒤에 함수 호출
- window.setInterval(호출할함수, 밀리초);
- 지정된 시간마다 함수 반복적으로 호출
- window.clearTimeout(타임아웃ID);
- setTimeout() 메소드의 반환값을 전달하면 계획된 함수의 호출 취소
- window.clearInterval(타임아웃ID);
- setTimeout() 메소드의 반환값을 전달하면 반복되는 함수의 호출 취소
- window.setTimeout(호출할함수, 밀리초);
- 관련 메소드
728x90
'JS & TS > JavaScript' 카테고리의 다른 글
[JavaScript] 예외처리 (0) | 2025.03.22 |
---|---|
[JavaScript] 이벤트 (0) | 2025.03.22 |
[JavaScript] 객체 (0) | 2025.03.22 |
[JavaScript] 함수, 변수/함수 범위, 매개변수/인수 (0) | 2025.03.22 |
[JavaScript] 배열 (0) | 2025.03.22 |