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 :

.each() ne remplace qu'un élément


Sujet :

jQuery

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2006
    Messages : 33
    Points : 19
    Points
    19
    Par défaut .each() ne remplace qu'un élément
    Bonjour à tous,

    J'ai un problème d'itération. Mon but est de chercher les résultats d'un tour de vote précédent pour les indiquer à côté du vote courant. J'ai donc créé des div avec un id spécifique, itéré dessus et appelé une fonction php pour récupérer les votes dans la base. Ca c'est pour l'idée. Résultat seul le premier div se voit attribuer la valeur puis les suivants à chaque refresh de la page...

    le fragment html qui se répète n fois avec des paramètres différents :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <td class="zoneVote" width='14%' >
    	<div id="previousVote" title="11_22|2">none</div>
    	<select id="currentVote" title="11_22|2" name="vote" >
    		<option></option>
    		<option> 1 </option>
    		<option> 2 </option>
    		<option> 3 </option>
    		<option> - </option>
    	 </select>
    </td>
    getPreviousVote.js
    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
    $(document).ready(function(){
        $("div[id='previousVote']").each(function(){
            var response = "";
            var title = $(this).attr("title");
            var chapter = title.substr(0, title.indexOf("_", 0));
            var row = title.substr(title.indexOf("_", 0)+1, title.indexOf("|", 0)-title.indexOf("_", 0)-1);
            var col = title.substr(title.indexOf("|")+1, title.length);
            var dataString = 'chap='+ chapter +'&row='+ row +'&col='+ col;
     
            response = $.ajax({
                type: "GET",
                url: "../functions/getPreviousRoundData.php",
                data: dataString,
                success: function(){
                }
            }).responseText;
     
            $(this).text(response);
        });
    });
    Et le résultat est que seul le premier div est remplacé, les suivants le sont 1 à 1 à chaque refresh de la page.

    Merci d'avance de m'apporter vos lumières.

    cdg

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2006
    Messages : 33
    Points : 19
    Points
    19
    Par défaut
    Bon ben j'ajoute la réponse reçue par ailleurs... :

    "Firstly, ID must be unique within a page. Don't reuse it in subsequent votes.

    Secondly, you should set the text of the element in the success callback as the ajax call is asynchronous (that's the first A in AJAX)."

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 10/02/2015, 10h34
  2. sIFR3 : Remplacer tous les éléments d'un coup
    Par Halex78 dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 30/04/2010, 15h22
  3. Remplacement, indexage d'éléments
    Par Newenda dans le forum MATLAB
    Réponses: 3
    Dernier message: 13/05/2009, 09h54
  4. [xslt] Limiter un for-each aux x premiers éléments
    Par camboui dans le forum XSL/XSLT/XPATH
    Réponses: 13
    Dernier message: 18/11/2005, 16h09
  5. for-each et dernier élément
    Par neptune dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 08/09/2005, 14h53

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