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 l'élément frère d'une checkbox sélectionnée


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Janvier 2003
    Messages
    604
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 604
    Par défaut Sélectionner l'élément frère d'une checkbox sélectionnée
    Bonjour, je cherche à récupérer en jQuery le NOM et le PRENOM de mes listes de tableaux pour laquelle la checkbox est cochée, mais je tourne en rond. Est ce que vous auriez des pistes svp ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $('table [type="checkbox"]').each(function(i, chk) {
        if (chk.checked) {
          essai[cpt]=  $(this).siblings().filter('NOM');
          cpt++;
       }
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <tr data-idbdd="17">
    <td><input type="checkbox" name="checkbox"> 
    </td><td class="d-none" id="id" name="id">17 </td>
    <td contenteditable="true" id="SEXE" type="text" name="SEXE">  M </td>
    <td contenteditable="true" attrnom="Person" id="NOM" type="text" name="NOM">  Person </td>
    <td contenteditable="true" id="PRENOM" type="text" name="PRENOM">  Cecile </td>
    <td contenteditable="true" id="CODE_POSTAL" type="text" name="CODE_POSTAL">  38640 </td>
    <td contenteditable="true" id="MAIL" type="text" name="MAIL">  <a href="mailto:CecilePerson@gmail.com">CecilePerson@gmail.com</a> </td>
    <td contenteditable="true" id="TELEPHONE" type="text" name="TELEPHONE">  1000017 </td></tr>

  2. #2
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 668
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 668
    Par défaut
    affichez le résultat de $(this).siblings() pour vérifier ce que vous obtenez.

  3. #3
    Membre éclairé
    Inscrit en
    Janvier 2003
    Messages
    604
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 604
    Par défaut
    Une fois que j'ai cela, comment je peux accéder aux données ? Je n'ai pas encore expérimenté à fond le debugguer de Chrome.
    Nom : CopieEcranDebugJS.jpg
Affichages : 270
Taille : 128,7 Ko

  4. #4
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 668
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 668
    Par défaut
    le plus simple est d'utiliser console.log() pour afficher dans la console. vous avez le résultat, length = 0, le retour est vide.
    la méthode "siblings" retourne les élément html du même niveau et là, la case à cocher est le seul enfant dans "td" (https://api.jquery.com/siblings/)

    quel élément html voulez-vous attendre ? la balise td id=NOM ?

  5. #5
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 207
    Par défaut
    Bonjour,
    enlève moi un doute, toutes tes lignes possèdent des éléments avec des ID uniques !

    Sinon il suffit de récupérer la collection des <td> du closest et de sélectionner celle qui intéresse via son index, et donc pas besoin d'ID.



    Au passage filter ne s'utilise pas comme cela : jQuery.filter().

  6. #6
    Inactif  
    Homme Profil pro
    Webmaster
    Inscrit en
    Juin 2021
    Messages
    645
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juin 2021
    Messages : 645
    Par défaut
    Bonjour,

    1- la solution de Nosmoking est bonne...
    sauf si on ajoute/supprime/intervertit des colonnes plus tard...

    2- Solution simple :
    Exactement de la même manière que tu récupères l'ID :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <tr data-idbdd="17" data-nom="..." ......>
    3- autre solution mettre un attribut id (UNIQUE grâce à l'ID) sur les <td> utiles :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <td id="NOM-17">.......
    <td id="PRENOM-17">.......
    Où 17 est l'ID de la ligne

    Important :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <td id="NOM">.......
    <td id="PRENOM">.......
    Ce n'est pas possible, car ces id se répètent sur chaque ligne.
    Or, un attribut id doit être unique

  7. #7
    Membre éclairé
    Inscrit en
    Janvier 2003
    Messages
    604
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 604
    Par défaut
    Citation Envoyé par NoSmoking Voir le message
    Sinon il suffit de récupérer la collection des <td> du closest et de sélectionner celle qui intéresse via son index, et donc pas besoin d'ID.
    Merci pour ce retour,
    J'ai donc essayé cette requette,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Nom[cpt]=  $(this).closest('tr').siblings().children().get(3);
    qui me renvoie
    <td contenteditable="true" attrnom="Person" " type="text" name="NOM"> Person </td>
    Est ce qu'il y a un moyen d'isoler le nom via la Jquery en l'occurence "Person" ? (je trouve peu de doc pour se mettre facilement à Jquery)

Discussions similaires

  1. Réponses: 3
    Dernier message: 02/02/2019, 12h43
  2. Réponses: 1
    Dernier message: 01/01/2017, 15h55
  3. Une checkbox qui en sélectionne plusieurs
    Par maxime.philippe dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 23/12/2010, 12h02
  4. Réponses: 10
    Dernier message: 06/05/2010, 20h51
  5. Sélectionner un élément précis dans une combobox
    Par adamsmith dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 20/08/2009, 14h30

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