Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery DataTables-根据行ID更改特定单元格中的数据_Jquery_Datatables_Cell - Fatal编程技术网

Jquery DataTables-根据行ID更改特定单元格中的数据

Jquery DataTables-根据行ID更改特定单元格中的数据,jquery,datatables,cell,Jquery,Datatables,Cell,我试图通过转到特定的表行ID来更改Jquery DataTable中第5列的表数据。默认情况下,我的所有表行的ID都是row。例如: <tr id="row147"> <td>147</td> ... 为了尝试更改特定的表数据单元,我尝试了以下方法 table.rowrow+data.job\u id.datavariable.draw 但这会在每个表数据单元的整行写入数据。如何在行中指定表数据单元,并使用DataTables API将其写入其中?您

我试图通过转到特定的表行ID来更改Jquery DataTable中第5列的表数据。默认情况下,我的所有表行的ID都是row。例如:

<tr id="row147">
  <td>147</td>
  ...
为了尝试更改特定的表数据单元,我尝试了以下方法

table.rowrow+data.job\u id.datavariable.draw


但这会在每个表数据单元的整行写入数据。如何在行中指定表数据单元,并使用DataTables API将其写入其中?

您的代码应该如下所示。添加initComplete:

var rowId = "row" + data.job_id;
var element = document.getElementById(rowId).cells;
element[index_of_column].innerHTML = "New content";`
$(document).ready(function () {
    $("#uiDataTable").DataTable({
        "order": [[1, "asc"]],
        "pagingType": "full",
        "deferRender": true,
        "initComplete": function (settings, json) {
            $('tbody tr').each(function () {
                var nTds = $('td', this);
                var nTrs = $('tr', this);
                //row #  
                if (nTrs.context.id == "4") {
                    $(nTds[0]).text("Changing row 3 column 1");
                    //alert(sBrowser);
                }
            });
        }
    });
});

我最终通过这篇文章找到了解决方案。基本上必须给每个单元格一个ID。然后我可以使用table.cell'td_5_'+data.job_ID.datavariable将新数据写入特定单元格。

如果您通读
$('#'+table).find('tr#'+rowId).find('td:eq(colNum)').html(newValue);
你会注意到上面写着:

还可以选择使用单元格和单元格方法从表中选择行

因此,如果你去:

您将看到重载的单元格方法:

cell( rowSelector, columnSelector, [ modifier ] )
对于您的情况:

table.cell("#row" + data.job_id,'').data(variable).draw()

table.cell("#row" + data.job_id, column_index).data(variable).draw()
更改顺序时,的方法不起作用,因为rowIndex是加载行的顺序,而不是当前显示的顺序。如果希望基于表中的当前位置进行查询,那么使用行索引的jQuery可能是最简单的方法-

$('#yourTableId tbody tr:eq(rowIndex) td:eq(columnIndex)').text('yourvalue');

我应该重新表述一下我关于如何通过DataTables API完成的问题。我尝试了table.rowrow.column5.datavariable.draw,虽然它没有抛出任何错误,但它没有更新该列中的单元格。忽略注释…没有办法通过API完成我的要求吗?initComplete是一个选项。您的答案被标记为低质量,因为它缺少解释。扩展您的答案,使其不会被删除。