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 :

:nth-child(x).attr('id') donne comme valeur 'undefined'


Sujet :

jQuery

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 59
    Points : 47
    Points
    47
    Par défaut :nth-child(x).attr('id') donne comme valeur 'undefined'
    Bonjour,
    Je veux récupérer les ID de mes input checked. J'ai donc fait une boucle.
    J'ai fait ce code qui ne marche pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    for (i = 1; i <= $('#tableinfoetape2 input:checked').length; i++) {
                    id = $("input[name='ue1']:checked:nth-child("+i+")").attr('id');
                    alert(id);
    };
    J'obtiens le bon nombre d'alert, cependant il n'y a que la première qui fonctionne et qui m'affiche l'ID, les autres alert, à la place de l'ID il y a écrit "undefined".

    J'ai donc testé ça pour voir si la synthaxe dans mes nth-child était bonne et si il trouvait bien chaque élément :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    for (i = 1; i <= $('#tableinfoetape2 input:checked').length; i++) {
                    $("input[name='ue1']:checked:nth-child("+i+")").css({
    			'height':'100px'
    		});
    };
    Or ce code fonctionne ! (chaque bouton coché obtient une hauteur de 100px)

    Je ne comprend donc pas la ou il y a une erreur, bien que j'ai longuement cherché.

    Merci d'avance !

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 638
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 638
    Points : 66 668
    Points
    66 668
    Billets dans le blog
    1
    Par défaut
    pourquoi faire une boucle au lieu de passer par un each ?

    quel est le html associé ?
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 59
    Points : 47
    Points
    47
    Par défaut
    Merci de votre réponse.

    Je ne connais pas les each c'est pour ça que j'ai fait une boucle.

    Voici le code php, le résultat est inscrit dans le html dans la balise <table id="tableinfoetape2"></table>
    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
     
                    $i=1;
    		while($donnees = $req->fetch()){
    			echo "
    			<tr>
    				<td>
    					<input onclick='compter()'' type='checkbox' name='ue1' id='c".$i."' value='".$donnees['ects']."'>
    				</td>
    				<td>
    					<label id='labelc".$i."' for='c".$i."'>".$donnees['ue']."</label>
    				</td>
    				<td>".$donnees['ects']."</td>
    			</tr>";
    			$i++;
    		}

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 638
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 638
    Points : 66 668
    Points
    66 668
    Billets dans le blog
    1
    Par défaut
    code html != code php ...


    http://jsfiddle.net/hs3JC/10/

    je pense que le souci provient du faite que le nth child ne pointe pas sur le checkbox comme tu le penses fais un test en affichant le nodename ...

    si tu tiens à conserver ta boucle tu peux essayer avec eq
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    id = $("input[name='ue1']:checked:eq("+(i-1)+")").attr('id');
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 59
    Points : 47
    Points
    47
    Par défaut
    Désolé, c'est vrai que ça aurait été plus facile pour vous, je ferrait attention la prochaine fois.
    Pour le code, merci ça fonctionne ! J'aurai appris quelque chose


    Oui ça marche pour ma boucle avec cette technique, merci. Je ne connaissait pas le sélécteur :eq().
    Avec le nodeName
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    alert($("input[name='ue1']:checked:eq("+(i-1)+")").get(0).nodeName)
    ça m'affiche INPUT.

Discussions similaires

  1. Date courante comme valeur par défaut
    Par joeyinbox dans le forum Débuter
    Réponses: 4
    Dernier message: 27/04/2006, 16h11
  2. Réponses: 1
    Dernier message: 20/04/2006, 12h46
  3. tableau comme valeur dans un hash de hash
    Par king_kunu dans le forum Langage
    Réponses: 2
    Dernier message: 02/01/2006, 16h05
  4. Réponses: 4
    Dernier message: 28/10/2005, 16h30
  5. [Custom Tags 1.2] Passer une variable comme valeur d'attribut d'un tag jsp
    Par Pi2 dans le forum Taglibs
    Réponses: 7
    Dernier message: 16/09/2005, 14h44

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