Front-end/Javascript

DOM에서 노드 추가, 삭제하기

Kamea 2022. 9. 1. 22:56

노드리스트(node list): querySelectorAll()메서드를 사용해 가져온 여러개의 노드 정보를 저장한 것

 

1. 텍스트 노드를 사용하는 새로운 요소 추가하기

(1) 요소 노드 만들기 - createElement() 메서드

 

document.createElement(노드명);

 

ex) var newP = document.createElement("p");

 

 

 

(2) 텍스트 노드 만들기 - createTextNode() 메서드

 

document.createTextNode(텍스트);

 

ex) var txtNode = document.createTextNode("텍스트 노드를 만들었다!");

 

 

 

(3) 자식 노드 연결하기 - appendChild()

→ newP와 txtNode 연결하기

→ 텍스트 노드나 속성 노드를 만든 후 요소 노드에 연결할 때 사용

→ 자식 노드 중 맨 끝에 추가

 

부모노드.appendChild(자식노드)

 

newP.appendChild(txtNode);

document.getElementById("info").appendChild(newP);

 

 

 

✅ 전체 코드

 

function addP(){
	var newP = document.createElement("p");
    var txtNode = document.createTextNode("이것이 새로운 노드다!");
    
    newP.appendChild(txtNode);
    document.getElementBtyId("info").appendChild(newP);
}

 

 

 

2. 속성값이 있는 새로운 요소 추가하기

(1) 요소 노드 만들기 - createElement() 메서드

 

document.createElement(노드명);

 

ex) var newImg = document.createElement("img");

 

 

 

 

(2) 속성 노드 만들기 - createAttribute() 메서드

 

document.createAttribute(속성명);

 

ex) var srcNode = document.createAttribute("src");

srcNode.value = "images/dom.jpg";

 

 

 

 

(3) 속성 노드 연결하기 - setAttributeNode()

 

요소명.setAttributeNode(속성노드)

ex) newImg.setAttributeNode(srcNode);

 

 

 

 

(4) 자식 노드 연결하기 - appendChild()

 

부모노드.appendChild(자식노드)

 

document.getElementById("info").appendChild(newImg);