IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Ajout de fonction à plusieurs div


Sujet :

JavaScript

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2018
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2018
    Messages : 70
    Points : 65
    Points
    65
    Par défaut Ajout de fonction à plusieurs div
    Bonjour,

    Je cherche à récupérer la valeur ou le contenu d'une div via une fonction JS, j'ai essayé le code suivant en me basant sur plusieurs forums que j'ai lu :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    <div class="button" value="3">bouton</div>
    <div class="button" value="4">autre bouton</div>
    <style>
        div {
            background-color: red;
        }
        div:hover {
            cursor: grab;
        }
    </style>
     
    <script>
        button = document.querySelectorAll("button");
        button.forEach(button => {
            button.addEventListener('click', value => {
                console.log("il est passé par ici")
                console.log(button.getAttribute("value"));
            })
        })
    </script>

    Les console.log ne me renvoie rien, je pense du coup que je ne passe par la fonction, j'aimerai bien savoir pourquoi

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 643
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 643
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    un div n'a pas d'attribut value ...
    passe plutot par des data-value ...
    https://developer.mozilla.org/fr/doc...ata_attributes

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2018
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2018
    Messages : 70
    Points : 65
    Points
    65
    Par défaut
    Merci pour le data-value, ça a l'air en effet de correspondre à mon soucis, j'ai pu remplacer par ça :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <div id="button1" data-value="1">bouton</div>
    <div id="button2" data-value="2">autre bouton</div>
     
    <script>
        for (var compteur = 1; compteur < 3; compteur++){
            id = "button" + compteur;
            console.log("id : " + id);
            document.getElementById(id).addEventListener("click", function () {
                console.log("il est passé par ici");
                console.log(document.getElementById(id).dataset.value);
            })
        }
    </script>

    Bon le souci c'est que maintenant la variable renvoyée par le click est forcément 2

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 643
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 643
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    C'est un peu confus ...
    Dis nous plutot ce que tu veux faire de tes data-value ...

  5. #5
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 424
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 424
    Points : 15 796
    Points
    15 796
    Par défaut
    vous n'avez pas bien déclaré la variable "id" donc c'est pour ça que vous avec un résultat inattendu. je crois que votre code crée une variable "id" globale.

    essayez plutôt ça :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    <div id="button1" data-value="1">bouton</div>
    <div id="button2" data-value="2">autre bouton</div>
     
    <script>
        "use strict";
     
        for (var compteur = 1; compteur < 3; compteur++){
     
            let id = "button" + compteur;
     
            console.log("id : " + id);
     
            document.getElementById(id).addEventListener("click", function () {
                console.log("il est passé par ici");
                console.log(document.getElementById(id).dataset.value);
            });
     
        }
    </script>

    ça c'est pour le coté javascript.
    par contre du côté fonctionnalités, je suis un peu comme SpaceFrog, je ne comprends pas trop ce que vous voulez faire.

  6. #6
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2018
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2018
    Messages : 70
    Points : 65
    Points
    65
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    C'est un peu confus ...
    Dis nous plutot ce que tu veux faire de tes data-value ...
    Merci de ta réponse Space Frog, en fait, j'ai un ensemble de liste de résultats de recherche qui sont incrémenté via une requête php, ce qui me donne un résu

    Résultat 1 :
    Description :
    blalbalbalblallab

    avec Résultat 1 qui est dans une div appeler PodResult1 et ainsi de suite jusqu'au nombre de résultats que la requête php me donne.
    à la fin j'aimerai cliquer sur la div Résultat1 pour afficher uniquement se résultat dans la div résultat comprenant tous les résultats

    PS : La solution de Mathieu a bien marché, du coup, je vais poursuivre dans cette voix, marqué résolu et souhaité bonne continuation à tous !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Ouvrir plusieurs div differentes en fonction d'un clic sur menu select
    Par Thib0ult dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 12/07/2016, 21h56
  2. Afficher, cacher plusieurs divs
    Par Buku dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 18/03/2005, 10h28
  3. [VBA-E] Ajouter des fonctions dans Excel
    Par Clezio dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 06/03/2004, 01h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo