01 문서 객체(document) 모델

● 동적으로 문서 객체 만들기

○ 정적으로 문서 객체 생성 : 페이지가 처음 HTML 페이지에 적혀 있는 태그들을 읽으며 생성하는 것

○ 동적으로 문서 객체 생성 : 자바스크립트로 원래 HTML 페이지에는 없던 문서 객체를 생성하는 것

1)    요소 노드 : HTML 태그

2)    텍스트 노드 : 요소 노드 안에 들어 있는 글자

3)    택스트 노드를 갖는 문서 객체 / 갖지 않는 문서 객체로 구분 가능

 

● 문서 객체 생성

1)    텍스트 노드를 갖는 문서 객체 생성

■ 요소 노드와 텍스트 노드를 생성하고 텍스트 노드를 요소 노드에 붙여 줌

document 객체의 노드 생성 메서드

createElement(tagName) : 요소 노드 생성

createTextNode(text) : 텍스트 노드 생성

window.onload = function () { // 변수 선언

var header = document.createElement('h1’);

var textNode = document.createTextNode('Hello DOM');

}

□ 이 노드들을 서로 연결해 줘야 함

 

appendChild(node) 객체에 노드를 연결

<script>

window.onload = function () {

// 변수 선언

var header = document.createElement('h1');

var textNode = document,createTextNode('Hello DOM');

// 노드 연결

header.appendChiId(textNode);

document.body.appendChild(header);

}

</script>

 

2)    텍스트 노드를 갖지 않는 노드 생성

img 태그

window.onload = function () {

// 변수를 선언하고 속성을 지정!

var img = document,createElement('img');

img.src = 'Penguins.jpg';

img.width = 500;

img.height = 350;

// 노드를 연결합니다.

document.body.appendChild(img);

}

 

□ 객체 속성 메서드 사용해서 지정

data-property 속성은 setAttribute 메서드 사용해야만 함

img.setAttribute(‘src‘, 'Penguins.jpg');

img.setAttribute('width', 500);

img.setAttribute('height’, 350);

img.setAttribute('data-property‘, 350);

 

3)    문서 객체의 innerHTML속성 사용하여 문서 객체 만들기

innerHTML 속성 : 태그의 내부를 의미하는 속성(document 객체 내 모든 태그 가능)

■ 문자열을 선언하고 body 문서 객체의 innerHTML 속성에 넣기만 하면 문서 객체를 생성

■ 복합 대입연산자로 문자열 추가하면 됨

window.onload = function () {

// 변수를 선언합니다.

var output = ‘ ‘

output += ’ul>‘;

output += ' li〉〕avaScript</li

output += ' <li>jQuery</li>'

output += ' <liAjax/li

output += '</ul>'

// innerHTML 속성에 문자열을 할당합니다.

document.body.innerHTML = output;

};

 

● 문서 객체 가져오기

1)    getElementById(id) : 태그 속성이 id인 매개변수와 일치하는 문서 객체 가져옴

■ 한 번에 한 가지 문서 객체만 가져올 수 있음

var headerl = document.getElementById('header-1');

<body>

<h1 id="header-1 ''>Header</h1>

</body>

■ 문서 객체 속성 변화 (innerHTML 메서드로 내부에 넣기)

headerl.innerHTML = 'with getElementByld( )’;

 

2)    getementsByName(name), getElementsByTagName(tagName)

■ 한 번에 여러 개의 문서 객체를 가져옴

getementsByName(name) : 태그 속성이 name인 매개변수와 일치하는 문서 객체를 배열로 가져옴

getElementsByTagName(tagName) : tagName 매개변수와 일치하는 문서 객체를 배열로 가져옴

var headers = document,getElementsByTagName('hi');

headers[i] for 반복문 사용해 인덱스로 접근하면서 접근하면 됨.

for in 반복문은 문서 객체 이외의 속성에도 접근하므로 사용하면 안됨

 

3)    queryselector(선택자), querySelectorAII(선택자)

CSS 선택자로 문서 객체를 선택하는 메서드

queryselector(선택자) : 선택자로 가장 처음 선택되는 문서 객체를 가져옴

querySelectorAII(선택자) : 선택자를 통해 선택되는 문서 객체를 배열로 가져옴

var headerl = document.querySelector(' #header-1');

■ 자바스크립트는 특수기호 ‘-‘를 식별자로 사용 X -> 스타일 속성의 를 없애고 카멜 표기로 바꿔서 사용해야 함

 

● 문서 객체 제거

removeChild(child)

■ 문서 객체의 자식 노드를 제거

var willRemove = document,getElementById(‘will-remove’);

// 문서 객체를 제거합니다.

document. body. removeChild(willRemove);

■ 제거 대상인 태그에서 부모 노드로 이동하고, 부모 노드에서 자식 노드를 삭제함

 

'JavaScript & JQuery' 카테고리의 다른 글

[Javascript][이론]이벤트  (0) 2020.09.10
[Javascript][이론]브라우저 객체  (0) 2020.09.09

+ Recent posts