Maison > interface Web > js tutoriel > Comment ajouter des écouteurs d'événements à plusieurs éléments avec la même classe en JavaScript ?

Comment ajouter des écouteurs d'événements à plusieurs éléments avec la même classe en JavaScript ?

Linda Hamilton
Libérer: 2024-11-17 11:16:01
original
828 Les gens l'ont consulté

How to Add Event Listeners to Multiple Elements with the Same Class in JavaScript?

Ajout d'écouteurs d'événements à plusieurs éléments avec la même classe

Dans le développement Web, il est souvent nécessaire d'ajouter des écouteurs d'événements à plusieurs éléments avec l'option même classe. Ceci peut être réalisé à l'aide de la méthode querySelectorAll() de JavaScript.

Problème initial :

L'extrait de code fourni tente d'ajouter un écouteur d'événement à tous les éléments avec l'option "supprimer". classe. Cependant, il ajoute uniquement l'auditeur au premier élément de cette classe, même si le comportement prévu est de l'ajouter à tous ces éléments.

Solution :

Pour pour résoudre ce problème, il est nécessaire d'utiliser querySelectorAll() au lieu de querySelector() pour sélectionner tous les éléments avec la classe "delete". querySelector() renvoie uniquement le premier élément correspondant, tandis que querySelectorAll() renvoie une NodeList contenant tous les éléments correspondants.

Le code révisé :

var deleteLinks = document.querySelectorAll('.delete');

for (var i = 0; i < deleteLinks.length; i++) {
    deleteLinks[i].addEventListener('click', function(event) {
        if (!confirm("sure u want to delete " + this.title)) {
            event.preventDefault();
        }
    });
}
Copier après la connexion

Avec ce code, un écouteur d'événement est réussi ajouté à chaque élément avec la classe "delete".

Autre Considérations :

  • Il convient de noter que return false/true n'est utile que pour les gestionnaires d'événements liés à onclick = function() {...}. Pour addEventListening, event.preventDefault() doit être utilisé.
  • Le code ES5 ci-dessus peut être rendu plus propre et plus sûr à l'aide de l'itération Array.prototype.forEach dans ES6 :
Array.from(deleteLinks).forEach(link => {
    link.addEventListener('click', function(event) {
        if (!confirm(`sure u want to delete ${this.title}`)) {
            event.preventDefault();
        }
    });
});
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