2009-12-14 51 views
0

我想追加我的JSON数据到一个div。由于某种原因,我没有看到,它不会追加。数据从Django视图中正确收集,我可以看到这是FireBug控制台。jQuery和Django - 附加()

这里是我的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); 
     }); 
    }); 

回答

0

不能使用“本”,当你在你的每个语句函数变量。删除数量和项目,然后就可以用“这个”或者说使用项目[统计]

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

您好,谢谢! 这没有什么区别,它仍然不会追加div #chatbox。即使我在附录中输出静态文本(“这是文本”)是不会附加它。那应该呢? – Harry 2009-12-14 09:11:08

0

让我们调试

$.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 
    }); 
    }); 
    } 
}); 

一旦您确定您的变量设置你认为会是这样的,事情就会落实到位。

0

$。每可能需要您指定.items而不是将整个变量:

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