通过jquery从yii中的json获取数据

时间:2012-11-26 19:15:33

标签: jquery json yii

我的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'不起作用。从我粘贴的警报中获取数据的正确方法是什么。

3 个答案:

答案 0 :(得分:2)

不确定您是否尝试将每个标题分开一个单独的范围。或者将所有标题放入一个范围内。但这是应该如何使用$.each()函数

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

FIDDLE

答案 1 :(得分:0)

您无法以正在尝试的方式访问该对象。您需要参考currient对象才能访问 this 。尝试这样的事情:

var self=this;

并在自己的回调中工作。

答案 2 :(得分:0)

代替$(data).each(...),试试这个:

$.each(data, function() {
   out += this.title;
});