我正在尝试设置自定义属性,以后可以访问/编辑它。这是否可能,我在旧版本中看到一个可以使用fnSettings但我如何在1.10.5中使用它?
$('#table').DataTable({
customProp: 'Hello World'
});
然后点击一下按钮,我想我可以做到以下几点:
$('.test').on('click', function(e){
var table = $('#table').DataTable();
console.log(table.settings.oInit.customProp);
}
但是我得到:Uncaught TypeError:无法读取未定义的属性'customProp'
有谁知道我该怎么做?
答案 0 :(得分:1)
您可以使用jQuery data()
方法将数据存储在关联元素中。例如:
$('#table').data('customProp', 'Hello World');
稍后您可以检索它,如下所示:
$('.test').on('click', function(e){
console.log($('#table').data('customProp'));
}
答案 1 :(得分:1)
出于某种原因,table.settings.oInit
仅在初始化时可访问。初始化后,table.settings
和$("#table").DataTable().settings
都不会oInit
(或访问初始化值的函数)。解决方法是将oInit
存储在变量中:
var init;
$('#example').DataTable({
customProp: 'Hello World',
initComplete: function(settings) {
init = settings.oInit;
}
});
现在你可以这样做:
alert(init.customProp);
demo(1.10.5) - >的 http://jsfiddle.net/ajLe1484/ 强>
显然,dataTables在回调中传递一个对象,并且表实例以不同的方式“清理”对象。我有点惊讶dataTables这样做。用1.10.x测试它 - 行为是相同的,所以不是因为oInit
被1.10.5落下了。
答案 2 :(得分:1)
对于DataTables 1.10.10及更新版本,以下内容将起作用:
$('#table').DataTable({
customProp: 'Hello World'
});
console.log($('#table').DataTable().init().customProp);