Selection dom

Résolu
papadinosaure Messages postés 7 Date d'inscription   Statut Membre Dernière intervention   -  
papadinosaure Messages postés 7 Date d'inscription   Statut Membre Dernière intervention   -

Bonsoir à tous,

J'ai plusieurs articles  qui ont chacun plusieurs paragraphes.
J'ai associé une classe du même nom au dernier paragraphe de chacun de mes articles, avec comme contenu textuel: "un bouton"

<article class="article">
<p></p>
<p class="bouton">un bouton </p>
</article>

<article class="article">
<p></p>
<p class="bouton">un bouton </p>
</article>

etc ...


Je voudrais associer ces paragraphes à une méthode comme : document.querySelector("bouton").addEventListener("click", fonction)
Pour qu'en cliquant sur un de ces paragraphes en particulier, cela déclenche qqchose.

Le problème c'est que je n'arrive qu'à selectionner le paragraphe "bouton" du premier article.

document.querySelector(".un bouton")
.addEventListener("click", (event) => {event.target.innerHTML = "ok";});


Ou alors de faire un querySelector sur une div englobant tous les articles, mais dans ce cas tous les elements deviennent cliquable, et ce n'est pas ce que je veux.

document
.querySelector(".classeDeMaDivEnglobantLesArticles")
.addEventListener("click", (event) => {....}


 

N'y a-t-il pas un moyen de sélectionner directement le paragraphe sur lequel je clique ?

1 réponse

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 

Bonjour

Pour cibler une classe il ne faut pas oublier de mettre le point devant

document.querySelector(".bouton").addEventListener("click", fonction)

0
papadinosaure Messages postés 7 Date d'inscription   Statut Membre Dernière intervention  
 

Oui pardon, c'est une négligence de retranscription, mais j'ai bien mis le point dans mes codes.

0
Pitet Messages postés 2826 Date d'inscription   Statut Membre Dernière intervention   527
 

Bonjour,

document.querySelector() retourne effectivement le premier élément correspondant au sélecteur.

Utilise document.querySelectorAll() pour récupérer plusieurs éléments.

document.querySelectorAll('.bouton').forEach((element) => {
  element.addEventListener('click', (event) => {
    // ...
  });
});
1
papadinosaure Messages postés 7 Date d'inscription   Statut Membre Dernière intervention   > Pitet Messages postés 2826 Date d'inscription   Statut Membre Dernière intervention  
 

Merci beaucoup, je n'avais pas pensé à cette utilisation.

0