更新现有jQuery对象上的选项

更新现有jQuery对象上的选项,jquery,twitter-bootstrap,jquery-datatables,Jquery,Twitter Bootstrap,Jquery Datatables,我在我的应用程序中使用引导和数据表,并且我有一个基于类的表的默认初始值设定项。我可以将类数据表添加到表中,然后用我想要的默认值实例化它 我想知道如何根据特定的表更改或更新特定的选项 if ($.fn.dataTable) { $('.data-table').dataTable( { sDom: "R<'row'<'span6'l><'span6'f>r>t<'row'<'span6'i><'span6'p>

我在我的应用程序中使用引导和数据表,并且我有一个基于类的表的默认初始值设定项。我可以将类数据表添加到表中,然后用我想要的默认值实例化它

我想知道如何根据特定的表更改或更新特定的选项

if ($.fn.dataTable) {
    $('.data-table').dataTable( {
        sDom: "R<'row'<'span6'l><'span6'f>r>t<'row'<'span6'i><'span6'p>>",
        sPaginationType: "bootstrap",
        oLanguage: {
            "sLengthMenu": "_MENU_ &nbsp; records per page"
        },
        aoColumnDefs: [
            { "bSortable": false, "aTargets": [ 0 ] }
        ]
    });
}
if($.fn.dataTable){
$('.data table')。dataTable({
sDom:“Rt”,
sPaginationType:“引导”,
语言:{
“sLengthMenu”:“\u MENU\u每页记录”
},
aoColumnDefs:[
{“bSortable”:false,“aTargets”:[0]}
]
});
}
所有我的数据表在第一列中都有一个复选框,因此上述删除排序的操作对所有数据表都有效。但是我希望能够逐个表更新
aoColumnDefs
,这样我就可以添加我不想排序的其他列


假设我有一个表:
$(“#成员列表”)
,我如何访问这个对象并在jQuery中更新它的datatables选项?我在任何地方都找不到任何参考或帮助。

DataTables插件有,即
dataTableSettings
。我不知道您正试图更改哪些设置(或者即使它们都可以通过此对象写入),但我已经验证了可以更改,例如,第n列的可排序性:

`$('#member-list').dataTableSettings.aoColumns[n].bSortable = true;`

由于实例化
dataTable
对象时只能配置
aoColumnDef
,因此我决定采用更优雅的方法,使用数据属性和附加函数来设置可排序列

在我的表中,我添加了
data sort=“0,4,8”
或任何我想要排序的特定字段

然后,我创建了一个简单的函数,将数据属性的字符串值转换为一个数字数组,以传递给
目标:

function convertData (string) {
   $array = Array();
   if (string) {
      $items = string.split(',');
      $.each($items, function () {
         $array.push(parseInt(this, 10));
      });
   }
   return $array;
}
现在我可以简单地遍历每个
$('.data table')
并获取
数据排序
属性,将其传递到
convertData()
以创建我的数组,然后在创建
dataTable
对象时将其传递到
目标中

if ($.fn.dataTable) {
   $('.data-table').each(function() {
      $targets = convertData($(this).data('sort'));
      $(this).dataTable({
         sDom: "R<'row'<'span6'l><'span6'f>r>t<'row'<'span6'i><'span6'p>>",
         sPaginationType: "bootstrap",
         oLanguage: {
            "sLengthMenu": "_MENU_ &nbsp; records per page"
         },
         aoColumnDefs: [
            { "bSortable": false, "aTargets": $targets }
         ]
      });
   });
}
if($.fn.dataTable){
$('.data table')。每个(函数(){
$targets=convertData($(this.data('sort'));
$(此).dataTable({
sDom:“Rt”,
sPaginationType:“引导”,
语言:{
“sLengthMenu”:“\u MENU\u每页记录”
},
aoColumnDefs:[
{“bSortable”:false,“ataargets”:$targets}
]
});
});
}
感谢所有试图帮助的人:-)


-我看不出这对我有什么帮助。我尝试了$(“#成员列表”).fnSettings();但是它抛出它没有方法在创建dataTable和以后版本时执行
var settings=memberList.fnSettings()是否有效。我可以按如下方式访问设置对象:
$(“#成员列表”)。dataTableSettings[0]但是aoColumnDefs没有包含在其中,我推测它只用于在保存对象之前应用配置变量。我更新了一个更具体的示例。但是,使用此API仍然可能无法满足您的需要。我只是对这个插件不太熟悉,无法为您解答这个问题。也许这可以工作,但对于几十个表来说,代码太多了。我发布的数据属性解决方案更通用,更易于实现。尽管如此,还是要感谢!!:-)