微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

cell(...).data(...).draw 不是函数

如何解决cell(...).data(...).draw 不是函数

我正在使用以下代码更新两个单元格的值

/*-----------------Agent Presence Websocket Starts-----------------------------*/
function presenceConnect(existing_table){
  var agentPresenceSocket = new ReconnectingWebSocket(wsstart+domain+"/agent-presence/");

  agentPresenceSocket.onmessage = function(e){

    data = JSON.parse(e.data)
    console.log(data);

    var availability = data['availability'];
    var id = data['id'];
    var upn  = data['upn'];
    var timeInStatus = data['timeInStatus'];

    var rowId = $('#agent-table').dataTable()
    .fnFindCellRowIndexes(upn,0);

    if(rowId.length>0){
      if(yellowArray.includes(availability)){
        existing_table
        .cell(rowId,6)
        .data('<i class="fa fa-circle fa-lg yellow-light"></i>'+availability)
        .draw(false);
      };
      if(greenArray.includes(availability)){
       existing_table
       .cell(rowId,6)
       .data('<i class="fa fa-circle fa-lg green-light"></i>'+availability)
       .draw(false);
     };
     if(redArray.includes(availability)){
       existing_table
       .cell(rowId,6)
       .data('<i class="fa fa-circle fa-lg red-light"></i>'+availability)
       .draw(false);
     }
     if(availability=="DoNotdisturb"){
       existing_table
       .cell(rowId,6)
       .data('<i class="fa fa-ban fa-lg red-light"></i>'+availability)
       .draw(false);
     }

     existing_table
       .cell(rowId,7)
       .data(timeInStatus)
       .draw(false);
     console.log("Time in status updated");

   };
  };
}
/*-----------------Agent Presence Websocket Ends-----------------------------*/

对于第 6 个单元格的值正在更改,但对于第 7 个单元格,我收到此错误,尽管两个单元格的代码相同

Uncaught TypeError: existing_table.cell(...).data(...).draw is not a function

P.S: exisiting_table 是 DataTable() 的一个实例

样本数据

{ upn: "abc@example.com",id: 613,activity: "Busy",availability: "Busy",time: "3:40:33" }

解决方法

我将数据记录到浏览器的控制台中。我得到的如下:

{ upn: "abc@example.com",id: 613,activity: "Busy",availability: "Busy",time: "3:40:33" }

为了收集时间,我使用了错误的键名,即 timeInStatus .因此data['timeInStatus']的值为undefined。这就是 existing_table.cell().data().draw() 抛出错误的原因。

当我使用正确的密钥名称,即 time 时,我没有收到任何错误。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。