如何将DataTable中的所有行保留在数组中?

时间:2018-03-21 04:46:06

标签: javascript jquery html web datatable

我正在使用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();

2 个答案:

答案 0 :(得分:1)

如果我是你,我会留在DataTables环境中 - 您只需查询表格本身以查看是否存在r_name。 DataTables缓存表格,因此这些搜索速度很快 - 因此您不需要保留另一个数组:

t.column(1).data().toArray().includes(r_name)

答案 1 :(得分:0)

使用colino117给出的答案,我解决了以下问题:

unique