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 :

Sélectionner une cellule sur le click d'une autre cellule


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2014
    Messages : 16
    Par défaut Sélectionner une cellule sur le click d'une autre cellule
    Bonjour tout-le-monde ! Je rencontre un petit souci en jQuery sur la sélection d'une cellule de tableau.
    Voici le tableau en question :
    Nom : d45b36bd94.png
Affichages : 366
Taille : 33,6 Ko

    Prenons exemple sur la 3ème ligne, j'aimerais récupérer au click sur la dernière cellule ('Non') la valeur de la première cellule de la ligne associée (12).
    J'ai essayé en utilisant .parent() et .delegate() mais je me perds un peu dans tout ça.

    Si quelqu'un peut m'apporter son aide, j'en serais ravi. Merci d'avance

  2. #2
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mai 2006
    Messages
    226
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mai 2006
    Messages : 226
    Par défaut
    Salut,

    tu as différentes options

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $('table tr').on('click', 'td:last', function() {
        var $tr = $(this).closest('tr');
        console.log($tr.find('td:first').html()); //12
    });
    ou alors quand tu construis ton tableau tu mets la valeur du premier td dans un attribut du dernier td, genre:
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <td data-num="12">NON</td>

    et ensuite
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $('table tr').on('click', 'td:last',  function() {
        console.log($(this).data('num')); //12
    });

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Avec le bout de code html de la ligne, ce serait plus simple...

    .parent().find('td:first-of-type').html() semble une bonne piste...

  4. #4
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    ou alors quand tu construis ton tableau tu mets la valeur du premier td dans un attribut du dernier td
    Ca me semble être de loin la meilleure méthode.
    jQuery facilite pas mal de chose, mais c'est avant tout une bonne structure HTML qui permet de simplifier le développement JavaScript.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2014
    Messages : 16
    Par défaut
    Merci beaucoup pour vos réponses, je pense que je vais partir sur la solution kakashi99 qui consiste à mettre la valeur du premier <td> en attribut sur le dernier. Mais pour y avoir accès je ne devrais pas plutôt faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     console.log($(this).attr('data-num'));

  6. #6
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Tu peux, mais c'est moins bien.
    Les attributs data-* sont très pratiques et permettent un accès direct via l'API dataset que jQuery a repris en la rendant compatible pour les anciens navigateurs. Il est donc préférable d'utiliser .data('nom') pour récupérer la valeur de l'attribut data-nom="...".
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  7. #7
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2014
    Messages : 16
    Par défaut
    D'accord, merci beaucoup pour l'information et la rapidité de vos réponses.

    Bonne journée !

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 10/01/2014, 11h13
  2. Réponses: 1
    Dernier message: 05/01/2010, 22h33
  3. Réponses: 3
    Dernier message: 06/12/2007, 11h09
  4. Réponses: 2
    Dernier message: 21/09/2007, 11h37
  5. Réponses: 1
    Dernier message: 10/05/2005, 14h14

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