问题:
创建数据表后,每列中的每个单元格都应该有一个单击事件,可以打开弹出窗口并传入从端点接收的JSON中的名称列表。端点根据单击的表格单元格而变化。
我认为,在数据表实例化时,我需要在每个表格单元格元素上定义的HTML5数据属性中存储某种独特的信息。我希望声明一个自定义数据属性(例如:data-endpoint ="端点ID")但是我不确定如果通过动态生成表行可以做到这一点数据表。
因为我不了解/了解我的选择,所以我想描述一下我理想的做法:
我不太了解的部分是如何在表格单元格元素上创建自定义数据属性。这是可能的还是我需要考虑另一种方法。非常感谢任何帮助!
答案 0 :(得分:18)
您可以尝试在实例化时使用createdRow
回调。例如:
$table.dataTable({
"destroy": true, // To replace existing data
"data": jsonData,
"columns": columns,
// Per-row function to iterate cells
"createdRow": function (row, data, rowIndex) {
// Per-cell function to do whatever needed with cells
$.each($('td', row), function (colIndex) {
// For example, adding data-* attributes to the cell
$(this).attr('data-foo', "bar");
});
}
});
我认为这可以帮助你做你需要的事。
答案 1 :(得分:4)
我必须做那样的事情。我不确定其余的,但我使用了columnDefs选项来设置属性。
....
"destroy": true, // To replace existing data
"data": jsonData,
"columns": columns,
// Sets the attribute
"columnDefs": [{
"targets":'_all',
"createdCell": function(td){
td.setAttribute('foo','bar');
}
}]
...
它仍然使用createdCell选项,但它模仿我在文档中找到的内容(https://datatables.net/reference/option/columns.createdCell)。