我正在使用数据表。我使用此代码向该表添加数据到 DataTable:t.row.add ([...])。 Draw (false); 这是我需要的:如果已经注册了同名的 r_name,我想在屏幕上打印一条警报。 为此,我想将所有行的 r_name 保留在数组中。我想将新添加的行的名称与这个数组进行比较。如果有一个r_name彼此相等,我想在屏幕上发出警告。我怎样才能做到这一点?
var t = $('#datatables').DataTable();
//-------------------------INSERT ROOM START----------------------------
$("[name='add-room-submit']").click(function () {
var r_name = document.getElementById('room-name').value;
var r_plan = document.getElementById('image-path').value;
t.row.add([
'<div class="img-container">' +
'<img src="../../assets/img/room-plan/' + r_plan + '" alt="..." id="imgsrc">' +
'</div>'
,
r_name,
'<div class="text-right">' +
'<a href="#" class="btn btn-simple btn-warning btn-icon edit" data-toggle="modal" data-target="#myModal"><i class="fa fa-edit"></i></a>' +
'<a href="#" class="btn btn-simple btn-danger btn-icon remove" ><i class="fa fa-times"></i></a>' +
'</div>'
]).draw(false);
//var oTable = $('#datatables').dataTable();
//aData = oTable.fnGetData();
//var aReturn = [];
//$(aData).each(function () {
// var nextRow = new Array();
// aReturn.push(nextRow);
//});
//console.log(aReturn[0]);
});
//-------------------------INSERT ROOM END----------------------------
$('#add-room-submit').click();
最佳答案
如果我是您,我会留在 DataTables 环境中 - 您只需查询表本身即可查看 r_name
是否存在。 DataTables 缓存表,因此这些搜索速度很快 - 因此您不需要保留另一个数组:
t.column(1).data().toArray().includes(r_name)
关于javascript - 如何将 DataTable 中的所有行保存在数组中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49398357/