반응형

문서 트리에 노드를 추가 하거나 기존 노드를 삭제할 있다.

간단한 컨텐츠 편집은 innerHTML 사용

복잡한 컨텐츠 변경은 다음 접근 방법을 활용한다.

 

새로운 노드 추가하기

appendChildtest.html

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>노드의 신규작성</title>
<script type="text/javascript">
function add(f) {
        var anchor = document.createElement('a'); //태그 생성
        anchor.href= f.url.value; //태그에 속성 지정
        /*var href = document.createAttribute('href');
        href.nodeValue = f.url.value;
        anchor.setAttributeNode(href);*/
        var name = document.createTextNode(f.name.value);
        anchor.appendChild(name);
        var br = document.createElement('br');
        var list = document.getElementById('list');
        list.appendChild(anchor); //리스트 노드에 자식으로 추가
        list.appendChild(br); //리스트 노드에 자식으로 추가
        /*list.insertBefore(br, list.firstChild);
        list.insertBefore(anchor, br);*/
}
</script>
</head>
<body>
<form>
<label>사이트 명:<br />
<input type="text" name="name" size="30" /></label><br />
<label>URL:<br />
<input type="text" name="url" size="50" /></label><br />
<input type="button" value="추가" onclick="add(this.form)" />
</form>
<div id="list"></div>
</body>
</html>
 
cs

실행결과

요소/텍스트 노드 작성하기

create관련 메서드

메서드

생성되는 노드

createElement(요소명)

태그 요소 노드

createAttributes(속성명)

속성 노드

createTextNode(텍스트)

텍스트 노드

createCDATASection(텍스트)

CDATA 섹션

createComment(텍스트)

코멘트 노드

createEntityReference(객체명)

실제 객체 참조 노드

createProcessingInstruction(처리명령코드)

처리 명령 노드

createDocumentFragment()

문서의 단편

노드들을 생성한 알맞게 조립하면 된다.

 

node.appendChild(추가할노드)

    자식으로 추가한다. 기존의 자식 노드가 있다면 제일 마지막에 추가

node.insertBefore(추가할 노드, 기준 노드)

    추가할 노드를 기준노드 앞에 삽입한다.

    마지막 노드로 추가하고 싶다면 번째 인자를 null 한다.

 

    자식들 앞에 추가하고 싶을 경우

        list.insertBefore(br, list.firstChild);

        list,insertBefore(anchor, br);

 

속성 노드 치환하기

    태그 요소에 적용될 속성 노드도 추가가 가능하다.

    속성과 동일한 이름의 프로퍼티를 설정하면 된다.

    속성을 문자열로 지정할 있으므로 "스크립트로부터 동적으로 속성 이름을 변경할 있다.

 

예제) anchor.href= f.url.value;

    위 속성 추가 코드를 다음과 같이 변경할 있음.

        var href = document.createAttribute("href");

        href.nodeValue = f.url.value; //속성 노드의 값을 지정

        anchor. setAttributeNode(href); //노드에 속성 지정

반응형

'교육자료 > Javascript' 카테고리의 다른 글

18-5. 이벤트 처리 고급  (0) 2019.05.13
18-4. 스타일시트 조작하기  (0) 2019.05.13
18-2. 속성 값 가져오기  (0) 2019.05.13
18-2. DOM특정 노드 참조하기  (0) 2019.05.13
18-1. DOM(Document Object Model)  (0) 2019.05.13

+ Recent posts