Notice
                              
                          
                        
                          
                          
                            Recent Posts
                            
                        
                          
                          
                            Recent Comments
                            
                        
                          
                          
                            Link
                            
                        
                    | 일 | 월 | 화 | 수 | 목 | 금 | 토 | 
|---|---|---|---|---|---|---|
| 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 | 
                            Tags
                            
                        
                          
                          - 코딩테스트
 - typeScript
 - useEffect
 - 혼자공부하는머신러닝
 - Redux
 - 혼공머신
 - 에러해결방안
 - 백준 #코딩테스트 #코테 #알고리즘
 - 백준
 - reactmemo
 - 머신러닝
 - 구조분해할당
 - TS
 - 혼자공부하는머신러닝딥러닝
 - REACT
 - error맛집
 - 혼공챌린지
 - 초기값 설정하기
 - 딥러닝
 - 혼공단
 - CSS
 - clipboardapi
 - 리액트
 - styledcomonents
 - axios
 - 유니티 #게임개발
 - 백준 #코딩테스트
 - 알고리즘
 - 타입스크립트
 - js
 
                            Archives
                            
                        
                          
                          - Today
 
- Total
 
좌충우돌 개발자의 길
[JS] DOM & EVENT #3 노드 생성, 추가, 복제, 삭제 본문
1. 노드 수정 추가

- nodeValue를 이용해서 내용을 추가 수정할 수 있음 (text value만 사용 가능, 나머지는 null처리함)
-> ex) blueTextNode.nodeValue = '파랑'; -> blue -> 파랑으로 바뀜
2. innerHTML
- 사용법) 마크업을 제대로 표현하고 싶을 때 사용  
- -> EX) ul.innerHTML = '<li>RED</li>;
 
 - 단점) 요소를 추가,제거 수정할때마다 다시 모든 html을 string으로 추가해야함
- -> EX) ul.innerHTML = '<li>RED</li><li>BLUE</li>;
 
 
3. 노드 생성
1) appendChild()
방법1) innerHTML
- 새로운 li 를 만듦 : const newLi = document.createElement('li');
 - 자식 텍스트 노드 붙이기 : newLi.innerHTML = 'green'; -> <li>green</li>
 - ul태그 안에 넣기 : ul.appendChild(newLi);
 
방법2) createTextNode
- 새로운 li 만듦 : const newLi2 = document.createElement('li');
 - 새로운 텍스트 노드 만듦 : const newText = document.createTextNode('green');
 - li태그 안의 자식 텍스트 노드 붙이기 : newLi2 .appendChild(newText );
 - ul태그 안에 넣기 : ul.appendChild(newLi2);
 
2) insertBefore()
- 특정 노드 전에 삽입해라!
-> appendChile : 항상 지정한 부모 노드의 가장 마지막 자식으로 추가됨
-> 원하는 위치가 마지막이 아니라면 insertBefore을 쓰자

-> ul.insertBefore(newLi3, red); : red 앞에 newLi3을 삽입해라는 뜻
4. 노드 복제
1) cloneNode()
const newBlack = newLi3.cloneNode(); //인수로 boolean값만 받음 -> 노드 자신만 복제됨 (자식노드x)
ul.appendChild(newBlack); // <li></li> 태그만 출력
const newBlack2 = newLi3.cloneNode(true); //true로 설정하면 더 깊은 복제를 실행함 -> 자식노드까지 복제함
ul.appendChild(newBlack2); // <li>black</li> 으로 출력
5. 노드 삭제
1) removeChild()
ul.removeChild(newBlack2);
ul.removeChild(ul.firstElementChild); // ul의 첫번째 자식요소노드 삭제
ul.removeChild(ul.lastElementChild); // ul의 마지막 자식요소노드 삭제
출처 : 코딩앙마
'STUDYING > Javascript' 카테고리의 다른 글
| [JS] DOM & EVENT #5 이벤트 핸들러(Event Handler) (0) | 2022.05.22 | 
|---|---|
| [JS] DOM & EVENT #4 CSS style, class 제어 (0) | 2022.05.21 | 
| [JS] DOM & EVENT #2 부모, 자식, 형제 노드 (0) | 2022.05.19 | 
| [JS] DOM & EVENT #1 노드에 접근하기 (0) | 2022.05.17 | 
| [JS] 자바스크립트 기초 정리 (0) | 2022.05.15 |