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 :

Obtenir les infos du DOM au survol de la souris


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Août 2018
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Directeur de projet

    Informations forums :
    Inscription : Août 2018
    Messages : 6
    Par défaut Obtenir les infos du DOM au survol de la souris
    Hello, dans le cadre d'un projet personnel, je souhaite pouvoir identifier, comme on peut le faire avec Chrome ou Firefox, l'élément du DOM que je suis en train de survoler.
    Cela comprend :
    • le nom du tag (ça, j'ai - tagName)
    • l'id de l'élément (j'ai aussi - id)
    • le contenu texte de l'élément (j'ai aussi - innerText)

    En revanche, je n'arrive pas à récupérer la classe ni le name de l'élément. Voici ce que j'aimerais avoir par exemple :
    Nom : Screen Shot 2018-08-14 at 19.12.18.png
Affichages : 437
Taille : 12,6 Ko

    A terme, l'idée est de pouvoir identifier de façon certaine l'élément cliqué et donner sa valeur à l'utilisateur. J'ai regardé l'ensemble des propriétés des éléments du DOM et rien ne semble convenir. Auriez vous la possibilité de m'aider ?

  2. #2
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par défaut


    Un exemple :

    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    <output id="textID" class="basique inutile" name="textName" data-name="information" data-url="https://www.google.com">Un texte</output>

    Code JavaScript : 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
    21
    22
    23
    24
    25
    26
    27
    28
    const elems = document.querySelectorAll('output');
     
    for (const elem of elems) {
        elem.addEventListener('mouseenter', ev => {
            console.clear();
            console.log(`ev.target.textContent = ${ev.target.textContent}`);
            console.log(`ev.target.name = ${ev.target.name}`);
            console.log(`ev.target.id = ${ev.target.id}`);
            console.log(`ev.target.classList = ${ev.target.classList}`);
     
            for(const key in ev.target.dataset){
                console.log(`ev.target.dataset[ ${ key } ] = ${ ev.target.dataset[key] }`);
            }
     
            /*
            ev.target.textContent = Un texte
            ev.target.name = textName
            ev.target.id = textID
            ev.target.classList = basique inutile
            ev.target.dataset[ name ] = information
            ev.target.dataset[ url ] = https://www.google.com
            */
        }, {
                capture: false,
                passive: true,
                once: false
            });
    }

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  3. #3
    Membre Expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 910
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 910
    Par défaut
    Salut,

    Pour le name il suffit d'utiliser "name" (event.target.name) et pour la classe "className" (event.target.className).

  4. #4
    Membre Expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 910
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 910
    Par défaut
    Ah je vois que Daniel a répondu avant moi...


    Citation Envoyé par mathieuq1 Voir le message
    A terme, l'idée est de pouvoir identifier de façon certaine l'élément cliqué et donner sa valeur à l'utilisateur. J'ai regardé l'ensemble des propriétés des éléments du DOM et rien ne semble convenir. Auriez vous la possibilité de m'aider ?
    Pourrais-tu développer ? Comment tu veux donner cette information à l'utilisateur et comment est-il censé l'utiliser ?

    Oui parce que sinon on pourrait te répondre que "event.target" désigne l’élément en question, ça l'identifie de façon certaine... Mais si tu veux l’identifier autrement par rapport au DOM eh bien il y a l'id c'est faisable car il censé être unique mais le problème c'est que tous les éléments n'ont pas forcément un id. Les autres choses (à ma connaissance) comme la class ne permettent pas d'identifier un élément de façon certaine comme tu dis (oui car plusieurs éléments peuvent avoir la même classe, il peut y avoir plusieurs élément ayant le même tagName...).


    Par contre je pense qu'il y a un autre moyen qui ne nécessite pas que l’élément ait un id, un className ou autre... C'est le chemin (path) complet (avec l'indice entre crochet ce qui permet de faire la distingtion entre les éléments ayant le même tagName)...

    J'avais ouvert un fil sur ce point : Comment trouver le chemin de l’élément (balises) dans lequel se trouve le curseur ?...

    Voici un exemple pour tester : http://jsbin.com/cedoqulomu/edit?js,output...
    En plus du chemin (path) il y a aussi l'id qui est indiqué lorsque l’élément survolé en a un... On pourrait ajouter d'autres choses comme la classe...

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Août 2018
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Directeur de projet

    Informations forums :
    Inscription : Août 2018
    Messages : 6
    Par défaut
    WOW impressionnant merci messieurs pour vos réponses, je pense effectivement que le Path ici est la meilleure alternative. L'idée pour moi est de pouvoir identifier précisément et systématiquement identifier et retrouver un élément dans n'importe quelle page c'est donc a priori la meilleure solution.

  6. #6
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par défaut
    Le chemin est une caractéristique intéressante, c'est une bonne idée, il est utile, mais il faut se souvenir qu'il peut varier.

    Exemple :
    • lorsqu'on supprime ou injecte un élément HTML dans le DOM pour répondre aux actions de l'utilisateur ;
    • lorsqu'on modifie l'ordre de présentation des éléments HTML pour faire du "responsive".

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Août 2018
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Directeur de projet

    Informations forums :
    Inscription : Août 2018
    Messages : 6
    Par défaut
    Citation Envoyé par danielhagnoul Voir le message
    Le chemin est une caractéristique intéressante, c'est une bonne idée, il est utile, mais il faut se souvenir qu'il peut varier.
    J'ai bien conscience de cela, mais est-ce qu'il existe une façon sure et certaine (ou plus sûre) d'identifier un élément particulier sur une page web ?

    J'ai un projet de sauvegarder le chemin de l'élément (et l'url de la page) de façon à pouvoir m'y référer plus tard, afin de détecter des changements de l'élément suivi. Quelle serait dans le cas ma meilleure option ?

  8. #8
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par défaut
    Pour identifier un élément de manière sûre, il n'y a que l'ID car il doit être unique dans la page web.

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  9. #9
    Nouveau membre du Club
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Août 2018
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Directeur de projet

    Informations forums :
    Inscription : Août 2018
    Messages : 6
    Par défaut
    merci à vous pour vos réponses !

  10. #10
    Membre Expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 910
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 910
    Par défaut
    Oui et comme je disais le problème c'est que tous éléments d'une page n'ont pas forcément d'id et en pratique il peut arriver que certains mettent plusieurs fois le même id bien que celui-ci doit être unique.

    Alors je ne sais pas si il existe une solution qui marche à tous les coups pour n'importe quel élément de n'importe quelle page... Il faut peut-être bien procéder au cas par cas...

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

Discussions similaires

  1. Obtenir les infos de contraintes de chaque champ
    Par bruce-willis dans le forum Développement
    Réponses: 3
    Dernier message: 02/07/2008, 15h52
  2. Obtenir les infos sur les colonnes d'une table
    Par randriano dans le forum SQL
    Réponses: 6
    Dernier message: 30/06/2008, 15h20
  3. obtenir les infos dans une meme fenetres
    Par xavewake dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 27/08/2007, 10h01
  4. Réponses: 1
    Dernier message: 05/07/2007, 08h34

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