如何从json数据文件中的值创建JS变量?

时间:2017-07-11 09:28:20

标签: javascript json datatables

Json文件:

[
   {
    "id":"40",
    "name":"Holliday",
    "firstname":"Billy",
    "company":"Blues"}
]

我从json文件中获取了一些数据,这些数据填充了我的数据表中的列:

$(document).ready(function() {
            $('#example3').DataTable( {
                 "ajax": {
                 "url": "data.json",
                 "dataSrc": ""
                },
                "columns": [
                   { "data": "id" },
                   { "data": "name" },
                   { "data": "firstname" },
                   { "data": "company" },
                  ]
              } );
       } );

现在我需要添加一个自定义列,它将文本和json文件中的ID结合起来。

$(document).ready(function() {
            $('#example3').DataTable( {
                 "ajax": {
                 "url": "data.json",
                 "dataSrc": ""
                },
                "columns": [
                   { "data": "id" },
                   { "data": "name" },
                   { "data": "firstname" },
                   { "data": "company" },
                   {"data":null,className: "action","defaultContent":"The id of this person is" + id}
                  ]
              } );
       } );

所以我需要知道如何定义变量ID以将其放入我的文本中。我试过了

var id = data.id;

但它不起作用

3 个答案:

答案 0 :(得分:2)

正如其他提到的那样,使用column.render回调,但正确使用它:)目标full(或第三个参数)以获取行完整的JSON项目,并设置列{{1} } data的属性:

null

演示 - >的 http://jsfiddle.net/pa1ps1yz/

答案 1 :(得分:1)

defaultcontent 是静态的,因此无法访问数据。

而是尝试使用渲染

<强> USAGE:

.
.
{ "data": "company" },
{
    sortable: false,
    "render": function ( data, type, full, meta ) {                     
    return '<span class="action">The id of this person is '+data.id+'</span>';
         }
}

答案 2 :(得分:0)

$(document).ready(function() {
            $('#example3').DataTable( {
                 "ajax": {
                 "url": "data.json",
                 "dataSrc": ""
                   },
                  "columnDefs": [
                      {
                     "render": function ( data, type, row ) {
                         return 'The id of this person is' + data;
                     },
                     "targets": 4
                     },
                ],
                "columns": [
                   { "data": "id" },
                   { "data": "name" },
                   { "data": "firstname" },
                   { "data": "company" },
                   { "data": "id" },
                  ]
              } );
       } );