Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème de selecteur avec Jquery

    11 juillet 2011 à 9:56:31

    Je vous présente le code html un simple tableau :


    <tr>	
           <td class="produit">xxxx</td>
           <td class="note">0</td>
           <td class="action"><input type="button" value="21" /></td>
       </tr>
    		
       <tr>	
           <td class="produit">xxxx</td>
           <td class="note">0</td>
           <td class="action"><input type="button" value="22" /></td>
       </tr>
    



    Et le code Javascript/Jquery :

    $(document).ready(function() {
    							$("input").click( function() { 
    							var msg = $("input").val();
    							alert(msg); 
    							});
    							});
    




    Je vous explique maintenant mon problème après un clic sur le input N°1 une fenêtre d'alerte s'ouvre et affiche 21; normal.

    Le problème est que lorsque je clique sur le deuxième input, j'ai encore une fenêtre qui s'ouvre avec comme valeur 21. Alors que la valeur de "msg" devrait être 22.

    Bref je suis complètement bloqué, et je bloque depuis des heures pour un petit morceau de code comme ça.

    J'ai vraiment besoin de votre aide.

    Merci d'avance.
    • Partager sur Facebook
    • Partager sur Twitter
      11 juillet 2011 à 10:09:27

      $('input') signifie tous les éléments input, on est d'accord. Or si tu veux récupérer la valeur du input "actionné" il faut utiliser this.
      Dans ton code le comportement est normal, si il y a plusieurs input et que tu fais $('input').val() il va te récupérer le premier input qu'il trouve.

      Toi tu veux la valeur de celui qui a été actionné donc :
      $("input").click( function() { 
      	var msg = $(this).val();
      	alert(msg); 
      });
      


      Le $(this) est le sélécteur jQuery "courant".
      • Partager sur Facebook
      • Partager sur Twitter
        11 juillet 2011 à 10:26:05

        $('input:first') ou $('input:eq(0)') te donne le premier input
        • Partager sur Facebook
        • Partager sur Twitter
          11 juillet 2011 à 12:19:57

          Citation : Desolation

          $('input') signifie tous les éléments input, on est d'accord. Or si tu veux récupérer la valeur du input "actionné" il faut utiliser this.
          Dans ton code le comportement est normal, si il y a plusieurs input et que tu fais $('input').val() il va te récupérer le premier input qu'il trouve.

          Toi tu veux la valeur de celui qui a été actionné donc :

          $("input").click( function() { 
          	var msg = $(this).val();
          	alert(msg); 
          });
          



          Le $(this) est le sélécteur jQuery "courant".



          Merci beaucoup pour l'information ;).
          Ça fonctionne !
          • Partager sur Facebook
          • Partager sur Twitter

          Problème de selecteur avec Jquery

          × 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