Selection dom

Résolu/Fermé
papadinosaure Messages postés 7 Date d'inscription mercredi 13 juillet 2022 Statut Membre Dernière intervention 11 octobre 2022 - 19 juil. 2022 à 17:20
papadinosaure Messages postés 7 Date d'inscription mercredi 13 juillet 2022 Statut Membre Dernière intervention 11 octobre 2022 - 19 juil. 2022 à 17:38

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 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
19 juil. 2022 à 17:23

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 mercredi 13 juillet 2022 Statut Membre Dernière intervention 11 octobre 2022
Modifié le 19 juil. 2022 à 17:30

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 lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 524
19 juil. 2022 à 17:31

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 mercredi 13 juillet 2022 Statut Membre Dernière intervention 11 octobre 2022 > Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022
Modifié le 19 juil. 2022 à 17:40

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

0