Maison > interface Web > js tutoriel > Pourquoi la suppression des éléments JavaScript est-elle si compliquée et comment peut-elle être simplifiée ?

Pourquoi la suppression des éléments JavaScript est-elle si compliquée et comment peut-elle être simplifiée ?

Susan Sarandon
Libérer: 2024-12-10 20:21:14
original
610 Les gens l'ont consulté

Why is JavaScript Element Removal So Complicated, and How Can It Be Simplified?

Simplification de la suppression d'éléments en JavaScript

La méthode JavaScript pour supprimer des éléments, qui consiste à trouver le nœud parent puis à supprimer manuellement l'élément, peut sembler lourd. Cela soulève la question : pourquoi JavaScript est-il conçu de cette manière ?

Bien qu'il puisse y avoir des raisons techniques, une solution consiste à augmenter les fonctions natives du DOM. Cette approche n'est pas idéale pour tous les cas, mais elle fonctionne bien dans les navigateurs modernes.

Méthode Polyfill

À l'aide du code suivant, vous pouvez étendre les prototypes Element et NodeList pour inclure une méthode de suppression :

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 cette extension, supprimer des éléments devient aussi simple comme :

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

Ou :

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

Bien que cette solution fonctionne efficacement dans les navigateurs modernes, elle ne prend pas en charge Internet Explorer 7 et versions antérieures.

Solution de navigateur moderne

Heureusement, les navigateurs modernes (à l'exception d'IE) ont introduit le node.remove() fonction. Cette fonction permet de supprimer des éléments directement, sans avoir besoin du polyfill.

Pour utiliser node.remove() :

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

Ou :

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

Cette approche est prise en charge dans tous les principaux navigateurs, notamment Chrome, Firefox, Edge et Safari.

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