【问题标题】:jQuery and Django - append()jQuery 和 Django - append()
【发布时间】:2009-12-14 08:45:26
【问题描述】:

我正在尝试将我的 JSON 数据附加到 div。由于某种原因,我没有看到,它没有附加。数据是从 Django 视图正确收集的,我可以看到这是 FireBug 控制台。

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

【问题讨论】:

    标签: jquery django append


    【解决方案1】:

    当每个语句中都有函数变量时,不能使用“this”。删除 count 和 item,然后你可以使用 "this" 或者使用 item[count]

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

    【讨论】:

    • 您好,谢谢!这没有任何区别,它仍然没有附加 div #chatbox。即使我在附加(“这是文本”)中输出静态文本也不会附加它。那么它应该呢?
    【解决方案2】:

    让我们调试

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

    一旦你确定你的变量是按照你认为的方式设置的,事情就会落实到位。

    【讨论】:

      【解决方案3】:

      $.each 可能需要您指定 .items 而不是传递整个变量:

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

      【讨论】:

        猜你喜欢
        • 2012-12-26
        • 2012-09-25
        • 2013-04-11
        • 1970-01-01
        • 2019-02-27
        • 2010-11-14
        • 2012-11-19
        • 2010-12-02
        • 1970-01-01
        相关资源
        最近更新 更多