我使用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