Maison > interface Web > js tutoriel > Comment supprimer efficacement les éléments DOM par ID en JavaScript ?

Comment supprimer efficacement les éléments DOM par ID en JavaScript ?

Barbara Streisand
Libérer: 2024-12-18 17:31:11
original
664 Les gens l'ont consulté

How to Efficiently Remove DOM Elements by ID in JavaScript?

Comment supprimer un élément par son ID à l'aide de JavaScript natif

En JavaScript standard, la suppression d'un élément du DOM nécessite d'accéder à son nœud parent d'abord :

var element = document.getElementById("element-id");
element.parentNode.removeChild(element);
Copier après la connexion

Cette approche semble un peu alambiquée, ce qui soulève la question : pourquoi JavaScript est-il conçu de cette manière manière ?

La solution : extension des fonctions DOM

Bien que la modification des fonctions natives du DOM ne soit pas toujours idéale, le polyfill suivant fonctionne de manière transparente dans les navigateurs modernes :

Element.prototype.remove = function() {
    this.parentElement.removeChild(this);
}
NodeList.prototype.remove = HTMLCollection.prototype.remove = function() {
    for(var i = this.length - 1; i >= 0; i--) {
        if(this[i] && this[i].parentElement) {
            this[i].parentElement.removeChild(this[i]);
        }
    }
}
Copier après la connexion

Avec ce polyfill, vous pouvez supprimer des éléments commodément :

document.getElementById("my-element").remove();
Copier après la connexion
Copier après la connexion
document.getElementsByClassName("my-elements").remove();
Copier après la connexion

Remarque : Cette solution ne fonctionne pas dans IE 7 et versions antérieures.

Solution moderne : Node.remove()

Dans les navigateurs récents, la fonction node.remove() peut être utilisée sans le polyfill :

document.getElementById("my-element").remove();
Copier après la connexion
Copier après la connexion
[...document.getElementsByClassName("my-elements")].map(n => n && n.remove());
Copier après la connexion

Ces fonctions sont prises en charge par tous les navigateurs modernes, à l'exclusion d'IE. Pour plus de détails, reportez-vous à la documentation MDN.

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!

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