>  기사  >  웹 프론트엔드  >  JavaScript에서 DOM 요소를 올바르게 제거하는 방법은 무엇입니까?

JavaScript에서 DOM 요소를 올바르게 제거하는 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-10-31 20:38:29746검색

How to Properly Remove DOM Elements in JavaScript?

JavaScript DOM - 요소 제거

JavaScript에서는 DOM(문서 개체 모델) 작업 시 요소를 제거하는 것이 일반적인 작업입니다. 기존 요소를 DOM에서 제거해야 하는 경우에는 RemoveChild 메소드가 사용됩니다.

일반적인 시나리오 중 하나는 요소의 존재 여부를 테스트한 후 해당 요소가 있으면 삭제하거나 없으면 생성하는 것입니다. 이 접근 방식을 사용하면 요소가 아직 존재하지 않는 경우에만 생성됩니다.

다음 코드를 고려하세요.

<code class="javascript">var duskdawnkey = localStorage["duskdawnkey"];
var iframe = document.createElement("iframe");
var whereto = document.getElementById("debug");
var frameid = document.getElementById("injected_frame");

iframe.setAttribute("id", "injected_frame");
iframe.setAttribute("src", 'http://google.com');
iframe.setAttribute("width", "100%");
iframe.setAttribute("height", "400");

if (frameid) { // check and see if iframe is already on page
  // yes? Remove iframe
  iframe.removeChild(frameid.childNodes[0]);
} else { // no? Inject iframe
  whereto.appendChild(iframe);
  // add the newly created element and it's content into the DOM
  my_div = document.getElementById("debug");
  document.body.insertBefore(iframe, my_div);
}</code>

이 코드에서 iframe의 존재를 확인하고 요소를 생성합니다. 없으면 의도한 대로 작동합니다. 그러나 iframe.removeChild(frameid.childNodes[0])를 사용하여 iframe을 제거하려는 시도는 실패합니다.

오류는 iframe.removeChild 사용에 있습니다. RemoveChild 메소드는 제거되는 요소의 상위에서 호출되어야 합니다. 이 경우, Frameid의 부모는 body 요소입니다. 따라서 올바른 제거 방법은 다음과 같습니다.

<code class="javascript">if (frameid) {
  frameid.parentNode.removeChild(frameid);
}</code>

위 내용은 JavaScript에서 DOM 요소를 올바르게 제거하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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