我使用Ajax data source (objects)来渲染数据表。 这里是例子JSON:使用来自ajax的json数据调用渲染数据表中的html元素
"data": [{
"news_id": 22,
"news_title": "Annual function held in school",
"news_details": "Annual function was held in school",
"created_at": "2016-02-19 17:01:38",
"imgurl": "uploads/images/8.JPG"
}]
现在,使用最后一个元素"imgurl"
,我要呈现在数据表的最后一栏的链接。像这样:uploads/images/8.JPG。 我试图呈现一个自定义列如下:
$('#example').DataTable({
"ajax": '?r=news/ajaxdata',
"columns": [
{ "data": "news_id" },
{ "data": "news_title" },
{ "data": "news_details" },
{ "data": "created_at" },
{ "render": function (data, type, row, meta) {
return $('<a>')
.attr('href', {"data": "imgurl"})
.text('link')
.wrap('<div></div>')
.parent()
.html();
} },
]
});
这似乎并没有被做一个适当的方式,因为它呈现一个链接,但HREF元素说[对象] [对象]。我无法找到正确的文档来执行此操作。任何人都可以帮忙吗?
尝试这样做:
{ "render": function (data, type, row, meta) {
var d = JSON.parse(data);
var d = d.imgurl;
return $('<a>')
.attr('href', d)
.text('link')
.wrap('<div></div>')
.parent()
.html();
} },
问题是处理Ajax响应。
刚打这个。看来datatables render函数只接受一个字符串返回值,并将其视为原始HTML。但是,这甚至没有记录。我很惊讶它不会接受一个DOM元素而不会将其渲染为“[object]”。我有一种感觉,鉴于各地发布的例子,那里有很多不正确的HTML转义噩梦。 – Jason