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 | <!-- 공통 --> <div> <p id="item">안녕</p> <div id="list"> <p>가나다</p> <p id="last">라마바</p> </div> </div> <script> const item = document.getElementById("item"), list = document.getElementById("list"), lastList = document.getElementById("last"); /* appendChild */ /* 기본형 : 특정노드.appendChild(추가할노드) */ list.appendChild(item); //결과 : <p id="last">라마바</p> 뒤에 <p id="item">안녕</p>이 들어감. /* insertBefore */ /* 기본형 : 부모노드.insertBefore(추가할자식노드, 기준자식노드) */ list.insertBefore(item, lastList); //결과 : <p id="last">라마바</p> 앞에 <p id="item">안녕</p>이 들어간다. /* insertData */ /* 기본형 : 텍스트노드.insertData(추가할위치인덱스, '추가할텍스트') */ lastList.firstChild.insertData(2,'가나다'); //결과 : <p id="last">라마바</p>가 <p id="last">라마가나다바</p>로 바뀜 </script> |
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 | <!-- 공통 --> <div id="exam_wrap"> <p id="text">텍스트</p> <p id="attr">속성</p> <p id="empty"></p> </div> <script> const wrap = document.getElementById("exam_wrap"), ogText = document.getElementById("text"); /* createElement */ const newTxt = document.createElement('p'); newTxt.innerHTML = "새로운 문장"; wrap.insertBefore(newTxt, ogText); //결과 : <p id="text">텍스트</p> 바로 앞에 <p>새로운 문장<p> 이 추가된다. /* createAttribute */ const newAttr = document.createAttribute('style'); newAttr.value = "color:red"; ogText.setAttributeNode(newAttr); //결과 : <p id="text">텍스트</p> 가 <p id="text" style="color:red">텍스트</p> 로 바뀐다. /* createTextnode */ const newStr = document.createTextnode("새로운 텍스트"); ogText.appendChild(newStr); //결과 : <p id="text">텍스트</p> 가 <p id="text">텍스트새로운텍스트</p> 로 바뀐다. </script> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | <!-- 공통 --> <div> <div id="list"> <p>가나다</p> <p id="item" style="color:red">라마바</p> </div> </div> <script> const item = document.getElementById("item"), list = document.getElementById("list"); /* removeChild */ /* 기본형 : 부모노드.removeChild(특정자식노드) */ list.removeChild(item); //결과 : <p id="item" style="color:red">라마바</p> 가 제거된다. /* removeAttribute */ /* 기본형 : 노드.removeAttribute(특정속성노드); */ item.removeAttribute("style"); //결과 : <p id="item" style="color:red">라마바</p> 가 <p id="item">라마바</p> 로 바뀐다. </script> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <!-- 공통 --> <div> <div id="list"> <p>가나다</p> <p>라마바</p> </div> </div> <script> const list = document.getElementById("list"); /* true 일 경우 */ list.appendChild(list.cloneNode(true)); //결과 : list 안에 있는 p까지 모두 복제되어 #list 맨 끝에 들어간다. /* false 일 경우 (default) */ list.appendChild(list.cloneNode(false)); //결과 : div#list 만 복제되서 들어갈 뿐 자식요소인 p들은 복제되지 않았다. </script> |
1 2 3 4 5 6 7 8 9 10 | <div id="myDIV"> <p>나는 myDIV 야. <span id="mySPAN"><b>span</b></span> 을 가지고 있어.</p> </div> <script> const span = document.getElementById("mySPAN"); let answer = document.getElementById("myDIV").contains(span); console.log(answer); //출력결과 : true </script> |
1 2 3 4 5 6 | <div id="text">가나다라마바사</div> <script> const text = document.getElementById("text"); text.firstChild.nodeValue = "텍스트 변경"; </script> |
1 2 3 4 5 6 | <div id="text"><p>가나다라마바사<p></div> <script> const text = document.getElementById("text"); text.firstChild.setAttribute("class","new"); //결과 : #text 안에 있는 p 태그에 class="new" 속성이 추가된다. </script> |
1 2 3 4 5 6 7 8 9 10 | <div id="parent"> <p id="first">가나다라마바사<p> </div> <p id="newEl">신규</p> <script> const parent = document.getElementById("parent"), first = document.getElementById("first"), newEl = document.getElementById("newEl"); parent.replaceChild(newEl,first); //결과 : #first 노드가 삭제되고 newEl 노드로 교체된다. </script> |
1 2 3 4 5 | <p id="text">가나다라마바사<p> <script> const text = document.getElementById("text").firstChild; text.replaceData(2, 3, "안녕하"); //결과 : 가나안녕하바사 </script> |