dataTable()与DataTable() – 为什么有差异,我如何使它们一起工作?
这个插件的绝大多数文档都表明你用它来初始化它
$('#example').dataTable(); 不过http://www.datatables.net/examples/api/multi_filter_select.html初始化使用
 $('#example').DataTable(); 
由此产生的对象差别很大,上面的示例URL在用小写字母“D”初始化时不起作用,但其他几乎所有的事情都需要小写字母“D”初始化。
有人可以向我解释为什么有什么区别,以及如何让这两个人在一起好吗? 基本上我需要多滤波器selectfunction,但也需要join一些其他的调用/插件,这似乎不喜欢大写'D'初始化。
基本上,这两个构造者返回不同的对象。
数据表构造函数
 var table = $(<selector>).dataTable() 
  dataTable是oldschool的dataTables构造器,它返回一个jQuery对象。 这个jQuery对象丰富了一套匈牙利符号格式的API方法,比如fnFilter , fnDeleteRow等等。  在这里查看完整的API方法列表。 例子 : 
 table.fnDeleteRow(0); table.fnAddData(['E', 'F']); 
 所有1.9.x / 1.10.x版本都支持dataTable 。 
数据表构造函数
 var table = $(<selector>).DataTable() 
DataTable构造函数是在1.10.x中引入的,并返回一个巨大的API对象,具有对页面,行,单元格等的完全读/写访问权限,参见手册 。 示例等价:
 table.row(0).remove(); table.row.add(['E', 'F']).draw(); 
结合dataTable和DataTable
 如果你维护旧的代码,或者由于某种原因需要使用oldschool的dataTable构造函数,但仍然需要使用新的API,那么jQuery对象是通过.api()方法扩展的(从1.10.0开始 ),该方法返回新的API 。 示例等价: 
 var table = $('#example').dataTable(); table.api().row(0).remove(); table.api().row.add(['E', 'F']).draw(); 
 像table.fnDeleteRow(0)这样的旧API仍然有效。 所以你的关心: 
基本上我需要多滤波器selectfunction,但也需要join一些其他的调用/插件,这似乎不喜欢大写“D”初始化。
 正如你所看到的,你可以做到这一点! 以旧的方式初始化dataTable,并在需要访问新的API时使用.api() 。 
为什么有这么多官方的例子使用dataTable()?
 那么,你不需要使用DataTable构造函数。 如果你不使用新的API,没有理由使用DataTable构造器。  oldschool dataTable构造函数不被弃用。  DataTables大多是一个男人的工作。 维护和发展是一项艰巨的任务,维护一个庞大的论坛,手册,例子等网站显然非常耗时。 这只是一个猜测,但我认为现在Allan Jardine只是将dataTable改成了DataTable ,实际上它只是在一个步骤中完成的。