0

我有以下工作代码:

var transforms = {
   'renderTimeline':[  {
       tag: "a",  
       class: "btn btn-warning btn-circle", 
       style: "float: right;", 
       html: "<i class=\"icon-remove\"></i>",
       "onclick": function(e) {
       delSchedule(e);
     }}
  }]
}

如果我传递以下 json :

{ monday:[ { startTime:10:00, endTime: 12:00, room_id:cse124 }, { startTime:13:00, endTime: 15:00, room_id:lotus } ] }

我像这样调用转换:

$('#someplace').json2html(data.monday, transforms.renderTimeline, {'events': true});

我希望能够在函数 delSchedule() 中访问“星期一”。我该怎么做呢?请帮忙。

4

3 回答 3

0

那不是json。是原生的Object

"onclick": function(e) {
    var obj = {
        monday: [{
            startTime: 10: 00,
            endTime: 12: 00,
            room_id: cse124
        }, {
            startTime: 13: 00,
            endTime: 15: 00,
            room_id: lotus
        }]
    };
    delSchedule(obj.monday); // pass it here
}

如果它是JSON格式,那没什么大不了的。做就是了delSchedule(JSON.parse(jsonStr).monday)

于 2014-12-18T07:19:44.833 回答
0

我认为首先您需要使用 jQuery.parseJSON() 解析 Json。然后它将返回一个对象。

var jObject = jQuery.parseJSON(jsonData);

var 星期一 = jObject.monday;

于 2014-12-18T07:22:01.637 回答
0

看看json2html.com,它描述了您在 Attributes->jquery->Event Attributes 中传递给 delSchedule(e) 的“e”参数的可用属性

在此处输入图像描述

为了回答你的问题,你的 delSchedule 应该是这样的

function delSchedule(e) {
     console.log( e.obj );
}

e.obj 会返回什么?这取决于您要转换的 JSON 对象。例如

$('#someplace').json2html(data, transforms.renderTimeline);

将创建一个元素和

e.obj === { monday:[ { startTime:10:00, endTime: 12:00, room_id:cse124 }, { startTime:13:00, endTime: 15:00, room_id:lotus } ] }

$('#someplace').json2html(data.monday, transforms.renderTimeline);

将创建两个元素,每个元素都有

e.obj === { startTime:10:00, endTime: 12:00, room_id:cse124 }
e.obj === { startTime:13:00, endTime: 15:00, room_id:lotus }

仅供参考,您的转换不需要 events:true 选项..只有当您直接使用 json2html.transform 函数时

于 2014-12-18T20:55:25.720 回答