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 :

Trouver une balise div en javascript grâce à son name


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2017
    Messages : 26
    Points : 14
    Points
    14
    Par défaut Trouver une balise div en javascript grâce à son name
    Bonjour,

    alors j'ai ce code :

    Code : 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 name="dh15">
    	<div class="sst">
    		<table style="font-size: 12px">
    			<tbody>
    				<tr>
    					<td>
    						<img src="Images/Atcd/stethoscope-icon.png" alt="Planche">
                                                    Planche
                                            </td>
    				</tr>
    			</tbody>
    		</table>
    	</div>
    	<div class="stx">
    		<div id="multicouche">
    		[CONTENU]
    		</div>
            </div>
    </div>
    Ce que je veux faire :
    Détecter en JS si à l'intérieur de la div <div name="dh15"> il y a bien " <img src="Images/Atcd/stethoscope-icon.png" alt="Planche"> Planche " avec ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
    function traitePlanche(){
      var divs = document.getElementsByTagName('div');
      for(var i = 0; i < divs.length; i++) { 
        var div = divs[i];
        if () {
        }
      }
    }
    Donc je ne sais pas quoi mettre dans min if car d'habitude j'utiliserais div.className == " " mais là il n'y a pas de class juste un name.
    1) Comment puis-je sélectionner/trouver cette div juste grâce à son name ?
    J'ai cherché sur internet mais je ne trouve pas de réponses adapter à ma situation.

    contraintes :
    - Je ne veux pas modifier le code html il faut qu'il reste tel quel
    - Seulement utiliser du html / css / javascript rien d'autre

    Merci de vos réponses futures.

  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 637
    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 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2017
    Messages : 26
    Points : 14
    Points
    14
    Par défaut
    ça ne marche pas :/

  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 637
    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 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function traitePlanche(){
      var divs = document.getElementsByTagName('div');
      for(var i = 0; i < divs.length; i++) { 
        var div = divs[i];
        alert( div.name);
      }
    }
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  5. #5
    Membre expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 873
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 873
    Points : 3 717
    Points
    3 717
    Par défaut
    Salut,

    Ben là dans ton code tu fais une partie de la recherche par toi-même : tu listes toutes les div et tu cherches ensuite dans cette liste celle qui tu veux, ici celle que tu veux c'est celle dont l'attribut "name" vaut "dh15" tu pourrais faire ton if comme ça : if (div.getAttribute("name") === "dh15")mais on peut aussi directement (plus besoin de la boucle for) cibler l’élément voulue avec document.querySelector()...

  6. #6
    Membre expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 873
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 873
    Points : 3 717
    Points
    3 717
    Par défaut
    Citation Envoyé par Beginner. Voir le message
    ... mais on peut aussi directement (plus besoin de la boucle for) cibler l’élément voulu avec document.querySelector()...
    J'ai testé et apparement ça marche on peut obtenir directement l’élément voulu comme ça var elm = document.querySelector("div[name=dh15]");...

    Après peux-tu nous dire comment tu comptes faire pour savoir si il y a une image ? Parce que j'ai testé cela (ici) :

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function traitePlanche() {
     
      var elm = document.querySelector("div[name=dh15] img ");
     
      if (elm) console.log("Il y a une image et sa source est :", elm.src );
      else console.log(elm,"Il n'y a pas d'image");
    }
    C'est plus concis...

  7. #7
    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 : 73
    Localisation : Belgique

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

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


    @Beginner. : il peut y avoir plusieurs images.

    Exemple :

    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    <!DOCTYPE html>
    <html lang="fr" dir="ltr">
    <head>
      <meta http-equiv="cache-control" content="public, max-age=60">
      <meta charset="utf-8">
      <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1">
      <meta name="author" content="Daniel Hagnoul">
      <title>test</title>
      <style>
        * {
          box-sizing: border-box;
        }
        
      </style>
      <script>
        'use strict';
        
        document.addEventListener( "DOMContentLoaded", ev => {
          
        }, false );
        
        window.addEventListener( "load", ev => {
          
          document.querySelector( "#btnImgPlanche" ).addEventListener( "click", ev => {
            
            let
              elemImgs = document.querySelectorAll( "div[name='dh15'] img" );
              
            for ( const item of Array.from( elemImgs ) ){
              if( item.getAttribute( "alt" ) === "Planche" ){
                document.querySelector( "#multicouche" ).textContent = item.src;
              }
            }
            
          }, false );
            
        }, false );
      </script>
    </head>
    <body>
      <main>
     
        <div name="dh15">
     
          <div class="sst">
            <table style="font-size: 12px">
              <tbody>
                <tr>
                  <td>
                    <img src="http://danielhagnoul.developpez.com/images/adoptez-le.png" alt="adoptez-le">
                  </td>
                </tr>
                <tr>
                  <td>
                    <img src="http://danielhagnoul.developpez.com/images/imageTest.png" alt="Planche">
                  </td>
                </tr>
                <tr>
                  <td>
                    <img src="http://danielhagnoul.developpez.com/images/avatarDVJH.jpg" alt="avatar">
                  </td>
                </tr>
              </tbody>
            </table>
          </div>
     
          <div class="stx">
            <div id="multicouche">
            [CONTENU]
            </div>
          </div>
     
        </div>
     
        <button id="btnImgPlanche">Cherche Image Planche</button>
     
      </main>
    </body>
    </html>

    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.)

  8. #8
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 959
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 122
    Points
    44 122
    Par défaut
    Bonjour,
    juste pour dire que
    n'est pas conforme HTML5

  9. #9
    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 : 73
    Localisation : Belgique

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

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Points : 22 933
    Points
    22 933
    Billets dans le blog
    125
    Par défaut
    Citation Envoyé par NoSmoking Voir le message
    Bonjour,
    juste pour dire que
    n'est pas conforme HTML5
    Bien vu !

    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.)

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

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 873
    Points : 3 717
    Points
    3 717
    Par défaut
    Salut,

    Ah ok merci, je pensais que dans son cas il y avait soit aucune image soit une seule image... Le principe reste le même, dans le cas où il y a plusieurs images il faut juste remplacer querySelector par querySelectorAll (Comme tu l'as fait d'ailleurs)...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function traitePlanche() {
     
      var elm = document.querySelectorAll("div[name=dh15] img ");
     
      if (elm.length) console.log("Il y a " + elm.length + " image(s)");
      else console.log("Il n'y a pas d'image");
    }

  11. #11
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2017
    Messages : 26
    Points : 14
    Points
    14
    Par défaut
    Merci beaucoup pour vos réponses ! ça marche avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     div.getAttribute("name") === "dh15"
    Finalement je fais autrement je traite toute la balise qu'il y ait des images ou non mais encore merci quand même d'avoir pris le temps de répondre.
    Désolé d'avoir répondu si tard je bosse pas le weekend héhé

  12. #12
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2017
    Messages : 26
    Points : 14
    Points
    14
    Par défaut
    En fait j'aurais une autre question à vous poser x) quand je fais ça du coup :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    if (div.getAttribute("name") === "dh15") {
     
    		document.getElementById('Planches2').innerHTML += div;
     
    		var Text = 'BLABLABLABLA' ;
    		div.innerHTML = Text;
        }
    vous voyez ce que je veux faire ? Envoyer le contenu de div dans la div Planches2 mvoyez ?
    sauf qu'en faisant ça j'ai ce foutu résultat : [object HTMLDivElement]
    Auriez vous un autre moyen pour que j'arrive à mes fins ? Merci

  13. #13
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2017
    Messages : 26
    Points : 14
    Points
    14
    Par défaut
    Bon j'ai trouvé tout seul en fait désolé du dérangement x)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    if (div.getAttribute("name") === "dh15") {
     
    		var Texte = div.innerText || div.textContent;
    		document.getElementById('Planches2').innerHTML += Texte;
     
    		var Text = 'BLABLABLA' ;
    		div.innerHTML = Text;
        }

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

Discussions similaires

  1. Comment ajouter une image dans une balise div ??
    Par liv dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 05/05/2006, 11h48
  2. impression d'une balise div
    Par nemya dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 25/01/2006, 01h27
  3. Taille d'une balise <div>
    Par Landru dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 21/11/2005, 08h43
  4. Modif des attributs d'une balise <param> en javascript
    Par Henri dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 06/08/2005, 22h20
  5. hauteur d une balise div en fonction de la résolution
    Par echecetmat dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 25/01/2005, 10h51

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