是否可以将原始HTML节点作为输入数据传递给Datatables?

时间:2015-05-26 08:30:34

标签: jquery html datatables jquery-datatables

我正在使用Datatables作为页面上的简单表格。其中一列包含select个输入。当我初始化Datatables对象时,我可以给它一个数据数组来填充表,如下所示:

$('#myTable').DataTable({data: arrayOfData});

目前,我给它一个字符串来创建数据表(我假设)解析然后放在单元格中的select输入。但是,我知道用document.createElement自己创建DOM节点比让jQuery解析一些HTML字符串要快得多。当我尝试给Datatables一个DOM节点时,我看到的只是表中的一个字符串,如下所示:

[object HTMLSelectElement]

是否可以为Datatables提供原始DOM节点?

编辑:

似乎我在描述中遗漏了一些东西。这是我的代码(当然是匿名的)。 tableData只是一个模型数据数组的数组,其HTML类似于我在下面显示的条目。

var tableData = [['<div class="td_inner_wrapper"><img src="img/drapeaux/fr.svg"></div>', ...], ...]

var myTableDT = $('#myTable').DataTable({
  paging: false,
  data: tableData,
  order: [[1, 'desc'],],
  scrollY: 300,
  scrollCollapse: true,
  searching: false,
  deferRender: true,
  columns: [
    { "title": 'Base', "width": "2.2rem", "className": "dt-center"},
    { "title": 'Date Corresp', "width": "5.8rem", "className": "dt-center"},
    { "title": 'Montant Don', "width": "5.6rem", "type": "num-fmt", "className": "dt-center"},
    { "title": 'Forme Don', "width": "5.7rem", "sortable": false, "className": "dt-center"},
    { "title": 'Type Don', "sortable": false, "className": "dt-center" },
    { "title": 'Réponse', "sortable": false, "className": "dt-center" },
    { "title": 'Date Réponse', "width": "6.3rem", "className": "dt-center"},
    { "title": 'Reçu', "className": "dt-center" },
    { "title": 'Archive', "width": "5rem", "className": "dt-center" },
    { "title": 'Notes', "width": '2.5rem', "className": "dt-center" },
    { "title": 'Date', "className": "dt-center fsize-0p8" }
  ],
  //dom: "frtiS", enable for paging if necessary
  initComplete: function(){
    console.log('init.dt');
  }
});

编辑2:

看起来这与我给Datatables的内容有关。如果我给它100行空字符串,生成表只需要大约200毫秒。

0 个答案:

没有答案