Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Jquery] Récupérer le texte d'un parent.

Sujet résolu
    29 septembre 2016 à 10:39:47

    Bonjour à tous,

    Pourriez-vous m'aider sur un problème sur lequel je ne trouve pas de solution.

    J'aimerais récupérer le texte d'une balise DIV parente.

    Voici la partie du code.

    <div id="slideMenu">
    <div class="topMenu"><img src="images/ImageA_50X50.png" alt="Icone Name">TexteA <div class="subMenu"><img src="images/ImageA1_50X50.png" alt="ImageA1">InfoA1</div> <div class="subMenu"><img src="images/ImageA2_50X50.png" alt="ImageA2">InfoA2</div> <div class="subMenu"><img src="images/ImageA3_50X50.png" alt="ImageA3">InfoA3</div> </div>
    <div class="topMenu"><img src="images/ImageB_50X50.png" alt="Icone Name">TexteB <div class="subMenu"><img src="images/ImageB1_50X50.png" alt="ImageB1">InfoB1</div> <div class="subMenu"><img src="images/ImageB2_50X50.png" alt="ImageB2">InfoB2</div> <div class="subMenu"><img src="images/ImageB3_50X50.png" alt="ImageB3">InfoB3</div> </div>
    </div>

     Partie jQuery

    $('.subMenu').click(function() {
    	var $texte = $(this).parent('div').text();
    	console.log('Texte ' + $texte);
    });


    Lorsque je clic sur l'une des div "subMenu" j'aimerais afficher le texte de la div "topMenu" parente. Et seulement son texte.

    Pour l'instant j'obtiens ceci :

    Texte TexteA
            InfoA1
            InfoA2
            InfoA3

    J'ai essayé aussi ça :

    var $texte = $(this).parent('#slideMenu > div').text();

    Ou ça :

    var $texte = $(this).parent('#slideMenu > div.topMenu').text();


    J'obtiens la même chose.

    Quelqu'un peut il me dire d’où vient mon erreur ?

    Merci de votre aide.

    • Partager sur Facebook
    • Partager sur Twitter
      29 septembre 2016 à 11:25:44

      Salut,

      Voici une solution certe un peu compliquée mais elle fonctionne : http://codepen.io/Deejayfool/pen/ORjyLg

      • Partager sur Facebook
      • Partager sur Twitter
        29 septembre 2016 à 11:58:06

        Salut Deejayfool,

        Effectivement c'est un peu compliqué pour moi, mais ça fonctionne nickel.

        j'ai juste un peu de mal à comprendre le '.remove().end()'  :(

        Merci pour cette réponse rapide.

        • Partager sur Facebook
        • Partager sur Twitter
          29 septembre 2016 à 15:04:55

          Le ".remove()" va te supprimer toutes les div à l'intérieur de ta div parente.

          Si tu cliques sur InfoA2 par exemple, il ne te restera donc que :

          <div class="topMenu"><img src="images/ImageA_50X50.png" alt="Icone Name">TexteA</div>


          Le ".end()" fait que tu retournes sur l'élément "<div>" parente et non pas celles que tu as trouvé dans le ".find()". De ce fait, quand tu fais ".text()", tu le feras sur le noeud "topMenu".

          • Partager sur Facebook
          • Partager sur Twitter
            29 septembre 2016 à 17:55:46

            Merci pour la petite explication, maintenant c'est plus clair.

            Je n'aurais jamais trouvé tout seul.

            • Partager sur Facebook
            • Partager sur Twitter

            [Jquery] Récupérer le texte d'un parent.

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown