0

我的 json 数据看起来像这个
[{"id":"299","calendar_id":"49","event_date":"2012-11-27","event_start":"2012-11-27 00:39:00","event_end":"2012-11-27 00:39:00","title":"description goes here","description":"","planned":"0","type_class":"General","type_data":"{\"frequency_type\":\"1\",\"frequency_x\":null,\"type\":\"14\",\"status\":\"23\"}" Ajax 请求

$.ajax({
        url: "<?php echo $this->createUrl('path/to/file')?>",
        dataType: 'json',
        cache: false,
        success: function(data) {
            var out = "<span>";
            $(data).each(function(){
                out += this.title;
            });
            out += "</span>";
            unplannedList.html(out);
            }
var unplannedList = $('.col ul li');

这是一个列表,我需要在其中附加显示在顶部的数据。'this' 或 'data' 不起作用。从我粘贴的警报中获取数据的正确方法是什么。

4

3 回答 3

2

不确定您是否要尝试将每个标题都设为一个单独的跨度。或者将所有标题放在一个跨度中。但这里是它应该如何使用$.each()函数

var out = '';
$.each(data,function(k,v){ // <-- using the callback arguments
    out += '<span>'+v.title+'</span>';
});

小提琴

于 2012-11-26T19:26:47.933 回答
0

您无法以您尝试的方式访问该对象。您需要对当前对象的引用才能访问您的this。尝试这样的事情:

var self=this;

并在你的回调中使用 self.

于 2012-11-26T19:18:31.113 回答
0

而不是$(data).each(...),试试这个:

$.each(data, function() {
   out += this.title;
});
于 2012-11-26T19:20:54.523 回答