我有以下可用的代码:
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()中访问“星期一”。我该怎么做呢?请帮帮忙。
发布于 2014-12-18 15:19:45
那不是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-18 15:22:02
我认为首先需要使用jQuery.parseJSON()来解析Json。然后它将返回一个对象。
var jObject = jQuery.parseJSON(jsonData);
var星期一= jObject.monday;
发布于 2014-12-19 04:55:26
看看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函数时才会出现这种情况
https://stackoverflow.com/questions/27541105
复制相似问题