【问题标题】:Fetch the specific column value from Datatable when user clicks用户单击时从 Datatable 中获取特定列的值
【发布时间】:2013-07-03 12:52:45
【问题描述】:

我有一个填充有aaData 的数据表,它描述了用户创建的任务。现在,datatable 中有一个action 列,其中有两个或三个操作按钮或徽标,如 pdf - 查看该任务的用户指南,浏览 - 任务源代码的链接,一个是 contributors 徽标,onclick 应显示该特定任务的贡献者。

aaData 是填充表格的以下格式

"aaData": [
    [
        "JSAG Home Page",
        "JSAG Home page contains information about various POCs done",
        "05/12/2012",
        [
                {
                   "displayValue":"Browse",
                   "link":"http://myTask.com/home",
                   "displayIcon" : "browselogo"
                },
                {   
                    "displayValue":"Source Code",
                    "link":"svn/HomePage/trunk/",
                    "displayIcon" : "svnlogo"
                },
                {   
                   "displayValue":"Audience Overview",
                    "link":"svn/Documents/Audience Overview.pdf",
                    "displayIcon" : "pdflogo"
               },
                 {  
                    "displayValue":"Contributors: ABC,XYZ",
                    "link":"#",
                    "displayIcon" : "people"
             }

        ],

    ],
    [
        "Backlog",
        "Backlog Forum application is designed to provide a platform for different groups to maintain backlog task items. ",
        "25/08/2012",
        [
            {   
                "displayValue":"Browse",
                "link":"http://mytask.com/BacklogApp",
                "displayIcon" : "browselogo"
            },
            {   
            "displayValue":"Source Code",
                "link":"svn/trunk/webapp-project/",
                "displayIcon" : "svnlogo"
            },
            {   
            "displayValue":"Contributors: ABC",
                "link":"#",
                "displayIcon" : "people"
            }
        ],

    ]
  ]

此格式适用于所有数据表,并且所有贡献者徽标都存在。我想要的是,当用户点击 contributors 图标时,他应该能够看到那些贡献者"ABC, XYZ, PQR"

我想获取操作列数据,然后获取 $each() contributors 数组,但我无法继续。

我怎样才能做到这一点?我如何获取列值onclick,因为每个数据表都是动态填充的。 请帮忙。

以下是填充贡献者 div 的代码

$(document).on('click', '#contributor', function(contributors){
        $.each(contributors, function(i, data) {
            var ul_data = "<li><h3>"+ data+ "</h3></li>";
            $("#contributors_div").append(ul_data);
        });
   }
    $('#contributors_div').show();
   });

我如何获得recentActdata 作为我的贡献者 JSON 数组

【问题讨论】:

    标签: javascript jquery json datatables arrays


    【解决方案1】:

    如果你在变量 oTable 中声明你的数据表,它将与此类似

    $(document).on('click', '#contributor', function(){
          var aPos = oTable.fnGetPosition( $(this) );
          console.log(aPos);
          //if aPos returns an array in console, use first val at pos zero to get row data
          var aData = oTable.fnGetData(aPos[0]);
          console.log(aData);
          // inspect your returned object, then tailor your $.each iteration
                $.each( aData["contributors"], function(i, data) {
                    var ul_data = "<li><h3>"+ data+ "</h3></li>";
                    $("#contributors_div").append(ul_data);
                });
           }
            $('#contributors_div').show();
           });
    

    【讨论】:

    • 这就是重点。我将如何通过点击图标获取该数据表?
    • 其实是修改了JSON格式。您能否相应地更新您的代码。我只需要选择"displayValue":"Contributors: ABC,XYZ",。我也有oTable 数据
    • 同样使用此代码我在jquery.datatables.js 文件中收到错误Uncaught TypeError: Cannot call method 'toUpperCase' of undefined
    • 你能发布你的数据表初始化吗? console.logs 还显示什么?
    • 好吧,谢谢杰。这个答案有点帮助,我想出了解决方案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多