如何更改特定的 jQuery dataTables 单元格值

How to change specific jQuery dataTables cell value

本文关键字:dataTables 单元格 jQuery 何更改      更新时间:2023-09-26

我有 2 个HTML表。 Table 1Summary Table 2

我使用以下函数在Table 1单元格中添加或删除复选标记,然后在Summary Table 2中增加或减少相关值。

function toggleCheckMark(elem, brand){
  var cell = $(elem).html();
  if(cell == ""){
    $(elem).html("&#x2714");
    var brandval = parseInt($("#" + brand).find("td:eq(3)").html());
    var newval = brandval + 1;
    $("#" + brand).find("td:eq(3)").html("" + newval + "");

  } else {
    $(elem).html("");
    var brandval = parseInt($("#" + brand).find("td:eq(3)").html());
    var newval = brandval - 1;
    $("#" + brand).find("td:eq(3)").html("" + newval + "");
  }
}

Summary Table 2是一个沼泽标准 html 表时,这绝对可以正常工作。但是当我在Summary Table 2上使用DataTables()时.该值未定义,因此无法更改。

如何更改我的函数,以便在我的表按DataTables()格式化时它起作用?

编辑

我的 HTML 已经包含空的 <table id="rangereviewsummarytable"> 标签,我使用以下函数来填充摘要表。

下面是一个可点击的单元格:

rrtable += "<td class='checkboxcell' onClick='"toggleCheckMark(this, '" + item.brand + "')'">&#x2714</td>";

和功能

function generateReviewSummary(summaryarray){
  var summarytable = "";
  $.each(summaryarray, function(brand, values){
    summarytable += "<tr id='" + brand +"''>"; //here is the logic behind $("#" + brand)...
    summarytable += "<td>" + brand + "</td>";
    summarytable += "<td>" + values.current + "</td>";
    summarytable += "<td>" + values.rec + "</td>";
    summarytable += "<td>" + values.user + "</td>"; // this is the col I want to update
    summarytable += "</tr>";
  });
  summarytable = "<tbody>" + summarytable + "</tbody>";
  $("#rangereviewsummarytable").append(summarytable);
  //$("#rangereviewsummarytable").DataTable();
  $("#rangereviewsummarypanel").show();
}

始终使用 API。您似乎想要更新特定行中的特定列 - 使用 .cell().data() API 方法而不是 jQuery .html()

var brandval = parseInt(summaryTable.cell({ row: 0, column: 2 }).data())
brandVal = !isNaN(brandVal) ? brandVal+1 : 1 //or -1
summaryTable.cell({ row: 0, column: 2 }).data(brandVal).draw() 

我指的是一个summaryTable,自从您在某处实例化"摘要表 2"以来您必须拥有的 dataTable 实例:

var summaryTable = $("#" + brand).DataTable()

$("#" + brand)背后的逻辑是什么,我只能猜测。