我正在使用DataTable。我在这个表中使用以下代码向DataTable添加数据: t.row.add([...])。画(假); 这就是我需要的:如果已经注册了同名的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();
答案 0 :(得分:1)
如果我是你,我会留在DataTables环境中 - 您只需查询表格本身以查看是否存在r_name
。 DataTables缓存表格,因此这些搜索速度很快 - 因此您不需要保留另一个数组:
t.column(1).data().toArray().includes(r_name)
答案 1 :(得分:0)
使用colino117给出的答案,我解决了以下问题:
unique