>  기사  >  웹 프론트엔드  >  JavaScript에서 DOM 노드 인스턴스를 생성, 사용 및 삭제하는 방법에 대한 자세한 설명

JavaScript에서 DOM 노드 인스턴스를 생성, 사용 및 삭제하는 방법에 대한 자세한 설명

伊谢尔伦
伊谢尔伦원래의
2017-07-20 13:26:381337검색

노드 생성

새 노드를 생성하려면 createElement 및 createTextNode를 사용하면 됩니다. 새 생성이 완료되면 addChild()를 사용하여 DOM 트리에 노드를 추가할 수 있습니다.

요소 P를 생성하고 innerHTML 속성을 설정하세요


var myp = document.createElement('p'); 
myp.innerHTML = 'yet another';

요소 P가 빌드된 후 마음대로 속성을 수정하고 추가할 수 있습니다


myp.style.border = '2px dotted blue'

다음으로,appendChild를 사용하여 새 노드를 추가할 수 있습니다. 트리의 DOM.


document.body.appendChild(myp)

DOM 메서드 사용
innerHTML 메서드를 사용하는 것은 실제로 매우 간단합니다. 순수 DOM 메서드를 사용하면 위의 기능을 구현할 수 있습니다.

  • 새 텍스트 노드 만들기(또 다른)

  • 새 단락 만들기

  • 텍스트 노드를 단락에 추가합니다.

  • 본문에 단락 추가


// 创建p 
var myp = document.createElement('p'); 
// 创建一个文本节点 
var myt = document.createTextNode('one more paragraph') 
myp.appendChild(myt); 
// 创建一个STRONG元素 
var str = document.createElement('strong'); 
str.appendChild(document.createTextNode('bold')); 
// 把STRONG元素添加到P中 
myp.appendChild(str); 
// 把P元素添加到BODY中 
document.body.appendChild(myp); 
//结果<p>one more paragraph<strong>bold</strong></p> 
 cloneNode()

새 노드를 만드는 또 다른 방법은 cloneNode를 사용하여 노드를 복사하는 것입니다. cloneNode()는 부울 매개변수를 전달할 수 있습니다. true이면 하위 노드를 포함한 전체 복사본이고, false이면 자체 복사만 합니다.

먼저 복사할 요소를 가져옵니다.


var el = document.getElementsByTagName(&#39;p&#39;)[1];//<p><em>second</em> paragraph</p>

아직 전체 복사가 필요하지 않습니다.


document.body.appendChild(el.cloneNode(false))

p 요소만 복사되었기 때문에 페이지가 변경되지 않은 것을 발견했습니다. 아래와 같은 효과입니다.


document.body.appendChild(document.createElement(&#39;p&#39;));

전체 복사를 사용하면 아래 p를 포함한 모든 하위 노드가 복사됩니다. 물론 텍스트 노드와 EM 요소도 포함됩니다.


document.body.appendChild(el.cloneNode(true))

insertBefore()
appendChild를 사용하여 끝에 요소를 추가하세요. insertBefore 메소드는 삽입된 요소의 위치를 ​​보다 정확하게 제어할 수 있습니다.


elementNode.insertBefore(new_node,existing_node)

Example


document.body.insertBefore( 
 document.createTextNode(&#39;boo!&#39;), 
 document.body.firstChild 
);

은 새 텍스트 노드를 만들어 body 요소의 첫 번째 노드로 사용하는 것을 의미합니다.
노드 삭제

DOM 트리에서 노드를 삭제하려면 RemoveChild()를 사용하면 됩니다. 작업할 HTML을 살펴보겠습니다.


<body> 
 <p class="opener">first paragraph</p> 
 <p><em>second</em> paragraph</p> 
 <p id="closer">final</p> 
 <!-- and that&#39;s about it --> 
</body>

다음 코드를 살펴보겠습니다. 두 번째 문단


var myp = document.getElementsByTagName(&#39;p&#39;)[1]; 
var removed = document.body.removeChild(myp);

삭제된 노드가 삭제된 노드입니다. 삭제된 노드는 나중에 계속 사용할 수 있습니다.

replaceChild() 메소드를 사용할 수도 있습니다. 이 방법은 노드를 삭제하고 다른 노드로 교체합니다. 마지막 노드 삭제 작업을 수행한 후 결과는 다음과 같습니다.


<body> 
 <p class="opener">first paragraph</p> 
 <p id="closer">final</p> 
 <!-- and that&#39;s about it --> 
</body>

replacementChild의 사용을 살펴보겠습니다. 두 번째 p


var replaced = document.body.replaceChild(removed, p);

를 마지막으로 삭제된 노드로 대체합니다. 이는 RemoveChild 반환과 동일합니다. 교체된 노드는 제거된 노드입니다. 이제 결과는


<body> 
 <p class="opener">first paragraph</p> 
 <p><em>second</em> paragraph</p> 
 <!-- and that&#39;s about it --> 
</body>
입니다.

위 내용은 JavaScript에서 DOM 노드 인스턴스를 생성, 사용 및 삭제하는 방법에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.