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

jQuery Discussion :

Syntaxe javascript et jquery pour obtenir la valeur d'un élément


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2015
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2015
    Messages : 59
    Par défaut Syntaxe javascript et jquery pour obtenir la valeur d'un élément
    Bonjour,

    Je viens de passer du temps à écrire une fonction correcte qui me renvoi la valeur d'un élément <select>.
    J'utilise jquery et je me sert beaucoup de w3school pour écrire mon code.

    Pour récupérer la valeur d'un select, w3school me dit avec un élement select :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <select id="mySelect"> ... </select>
    que la ligne javascript suivante suffit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alert(document.getElementById("mySelect").value);
    Partant de la, je me dis que la ligne suivante devrait fonctionner nickel chrome:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alert($('#mySelect').value)
    Erreur, j'ai invariablement la réponse suivante : Undefined.

    Par contre, j'obtiens le résultat escompté avec la ligne suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alert($('#mySelect')[0].value)
    Je ne m'explique pas la raison de ce [0]. J'ai toujours imaginé que $('#...') était l'équivalent jquery de document.getElementById("...")

    - Qu'est-ce que j'ai mal compris ?
    - Est-ce que passer par l'élément [0] est une façon correcte de travailler ?
    - Existe-t-il une doc sur le tableau renvoyé par $('#...') ?

    Merci pour vos éclaircissements

  2. #2
    Expert confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 418
    Par défaut
    Salut,

    C'est normal car jQuery crée un objet à partir de l'élément ciblé.

    Donc oui tu as mal compris $('#...') n'est pas strictement l'équivalent jquery de document.getElementById("...").

    Pour avoir strictement l'équivalent il faut faire $('#...')[0] ou $('#...').get(0). Ainsi tu pourras utiliser la méthode javascript "value" pour récupérer la valeur du select.

    Mais tu peux aussi utiliser la méthode jQuery "val()" et l'appliquer directement sur l'objet pour récupérer cette valeur, c'est plus simple.

    Conclusion, si tu utilises jQuery utilises de préférence les méthodes jQuery. Pour utiliser les méthodes javascript il faut s'assurer de travailler sur l'objet javascript et non pas sur l'objet jQuery.

    Ainsi les trois codes ci-dessous sont tous fonctionnels et équivalents (à supposé que tu aies chargé jQuery)

    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
    21
    22
    <body>
    <select id="select1">
    <option value="">Choisissez</option>
        <option value="1">1</option>
        <option value="2">2</option>
    </select>
    <select id="select2">
    <option value="">Choisissez</option>
        <option value="1">1</option>
        <option value="2">2</option>
    </select>
    <select id="select3">
    <option value="">Choisissez</option>
        <option value="1">1</option>
        <option value="2">2</option>
    </select>
    <script>
    $('#select1').on("change",function(){alert($(this).val())});
    $('#select2').on("change",function(){alert($(this)[0].value)});
    $('#select3').on("change",function(){alert($(this).get(0).value)});
    </script>
    </body>
    $(this) représente l'objet jQuery soit respectivement $('#select1'), $('#select2') et $('#select3') dans les trois lignes javascript.

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2015
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2015
    Messages : 59
    Par défaut
    Réponse complète et détaillée.
    Merci beaucoup.

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 01/10/2015, 23h29
  2. Réponses: 12
    Dernier message: 27/06/2014, 21h33
  3. Une série de valeurs pour obtenir une valeur X
    Par Geno312 dans le forum Mathématiques
    Réponses: 22
    Dernier message: 01/10/2007, 22h09
  4. [JavaScript] tableau ayant pour clé la valeur de plusieurs colonnes
    Par killysui dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 17/04/2007, 13h23
  5. Réponses: 3
    Dernier message: 29/12/2006, 16h11

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