2009-12-14 7 views
0

J'essaie d'ajouter mes données JSON à un div. Pour une raison que je ne vois pas, elle ne s'ajoute pas. Les données sont collectées correctement depuis la vue Django, je peux voir que c'est la console FireBug.jQuery et Django - append()

Voici mon JS

$.getJSON('/chat/xhr_test/', function(response_array) { 
     var arr = response_array; 
     $.each(arr, function(count, item) { 
     var messageList = (this.pk + ' ' +this.nickname +': '+ this.message +'<br>'); 
     $("#chatbox").append(messageList); 
     }); 
    }); 

Répondre

0

Vous ne pouvez pas utiliser « ce » lorsque vous avez des variables de fonction dans votre chaque instruction. retirer le nombre et l'article, vous pouvez utiliser « ceci » ou plutôt utiliser un objet [count]

var messageList = (item[count].pk + ' ' +item[count].nickname +': '+ item[count].message +'<br>'); 
+0

Salut, merci! cela ne fait aucune différence, il n'ajoute toujours pas la div #chatbox. Même si je suis hors texte statique dans l'append ("Ceci est le texte") ne l'ajoute pas. Et il devrait alors? – Harry

0

debug Let

$.getJSON('/chat/xhr_test/', function(response_array) { 
    var arr = response_array; 
    console.dir(arr);//is this an array? 
    var chatbox=$('#chatbox');//cache the chatbox -- ideally this should be placed outside getJSON for reuse 
    console.log('chatbox length', chatbox.length);//does chatbox exist? 
    if (chatbox.length){ 
    $.each(arr, function(count, item) { 
     console.log(count, item);//getting an integer and an object? 
     var messageList = (item.pk + ' ' +item.nickname +': '+ item.message +'<br />'); 
     console.log(messageList);//look good? 
     chatbox.append(messageList);//append to the cached chatbox element 
    }); 
    }); 
    } 
}); 

Une fois que vous assurez-vous sont mis en place la façon dont vos variables que vous pensez qu'ils sont , les choses se mettent en place.

0

$ .Chaque pourrait vous obliger à spécifier .items au lieu de passer la variable entière:

$.each(arr.items, function(count, item) {