Maison > interface Web > js tutoriel > le corps du texte

Comment supprimer correctement les éléments DOM en JavaScript ?

Barbara Streisand
Libérer: 2024-10-31 20:38:29
original
743 Les gens l'ont consulté

How to Properly Remove DOM Elements in JavaScript?

JavaScript DOM - Suppression d'éléments

En JavaScript, lorsque vous travaillez avec le modèle objet de document (DOM), la suppression d'éléments est une tâche courante. Lorsqu'un élément existant doit être supprimé du DOM, la méthode RemoveChild est utilisée.

Un scénario courant consiste à tester l'existence d'un élément et à le supprimer s'il est présent ou à le créer s'il est absent. Cette approche garantit que l'élément n'est créé que s'il n'existe pas déjà.

Considérez le code suivant :

<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>
Copier après la connexion

Dans ce code, vérifier l'existence de l'iframe et créer s'il est absent, il fonctionne comme prévu. Cependant, la tentative de suppression de l'iframe à l'aide de iframe.removeChild(frameid.childNodes[0]) échoue.

L'erreur réside dans l'utilisation de iframe.removeChild. La méthode RemoveChild doit être appelée sur le parent de l'élément en cours de suppression. Dans ce cas, le parent de frameid est l’élément body. Par conséquent, la méthode de suppression correcte est :

<code class="javascript">if (frameid) {
  frameid.parentNode.removeChild(frameid);
}</code>
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!