jQuery数据表:未捕获类型错误:无法读取属性';分类';未定义的

jQuery数据表:未捕获类型错误:无法读取属性';分类';未定义的,jquery,jquery-datatables,Jquery,Jquery Datatables,我是jQuery新手,如果我的问题太简单,那么很抱歉 我正在尝试这样做: $("#send-one").html('done. '); var tableProgress= $("<table id='table-progress'><tr><td></td></tr></table>"); $("#send-one").empty().append(tableProgress); tableProgress.data

我是jQuery新手,如果我的问题太简单,那么很抱歉

我正在尝试这样做:

$("#send-one").html('done. ');

var tableProgress= $("<table id='table-progress'><tr><td></td></tr></table>");

$("#send-one").empty().append(tableProgress);

tableProgress.dataTable({
    "bPaginate": false,
    "bLengthChange": false,
    "bFilter": true,
    "bSort": false,
    "bInfo": false,
    "bAutoWidth": false
});
function _fnColumnIndex(iColumnIndex) {
        return iColumnIndex;
}

您不调用任何异步函数(例如一些AJAX调用),因此
$。当
函数在这里没有意义时

当您使用在最后一个函数完成后调用的函数时,下面的代码应该可以工作

var tableProgress;
tableProgress = "<table id='table-progress'><tr><td></td></tr></table>";
$("#send-one").html('done. ' + tableProgress);
$('#table-progress').dataTable();  
var-tableProgress;
tableProgress=“”;
$(“#发送一个”).html('done.'+tableProgress);
$(“#表进度”).dataTable();
函数someAction(){
风险评估进展;
tableProgress=$(“”);
$(“#发送一份”)。追加(表格进度);
tableProgress.dataTable();
}

在文档就绪时将表添加到
#发送一个
,然后在其上调用数据表。使用id没有任何意义,因为您可以在jQuery对象中已有id。

确保正确加载plugin.js文件

var tableProgress=$('headingheadingcell');
$(“#发送一个”).empty().append(tableProgress);
tableProgress.dataTable();

我这样做了,效果很好。显然,数据表的排序存在一些问题。我不知道为什么

$("#send-one").html('done. ');

var tableProgress= $("<table id='table-progress'><tr><th></th></tr><tr><td></td></tr></table>");

$("#send-one").empty().append(tableProgress);

tableProgress.dataTable( {
    "aoColumns": [
          null
        ]
});
$(“#发送一个”).html('done');
var tableProgress=$(“”);
$(“#发送一个”).empty().append(tableProgress);
tableProgress.dataTable({
“aoColumns”:[
无效的
]
});

另一个堆栈溢出问题有一个更清晰的答案,它必须有一个
和一个
才能工作:


你的两个都不见了

如果您使用的是dataTable columnFilter插件,这个插件解决了我的问题

只需更改如下所示的索引:

$("#send-one").html('done. ');

var tableProgress= $("<table id='table-progress'><tr><td></td></tr></table>");

$("#send-one").empty().append(tableProgress);

tableProgress.dataTable({
    "bPaginate": false,
    "bLengthChange": false,
    "bFilter": true,
    "bSort": false,
    "bInfo": false,
    "bAutoWidth": false
});
function _fnColumnIndex(iColumnIndex) {
        return iColumnIndex;
}

看起来您没有使用延迟对象,这是非常必要的。你想实现什么?也许你应该解释一下你想要实现什么,而不是让我们根据你不工作的代码来猜测。对不起。我做了一个编辑,还没有。。求求你,救命!我在使用过时版本的Datatable时遇到了这样的问题。升级到1.10.5解决了我的问题。#文档准备就绪时,表进度不存在。。。文件上传后它就开始存在了…我一开始是这么做的。。但它不起作用。所以我想到美元。当。。。我应该测试什么?它已经准备好了文档,但是#表进度在开始时不存在。。只有在一些用户交互之后..是的,我更新了我的答案。您可以将表代码放入jQuery对象中,并将其添加到文档中,然后对其调用dataTable。它不起作用=(未捕获的TypeError:Object…….没有“dataTable”方法,那么你的dataTable插件还没有加载,你在加载之前就已经执行了代码。它已经加载。我有一个表,可以单击单元格,然后打开一个对话框(从jquery ui)然后我做了上面的事情…谢谢matty,但没有工作…仍然是相同的错误..它在jquery ui的对话框中…这可能是错误吗?请尝试更改第三行以再次选择DOM节点:$(“#表进度”).dataTable();别忘了正确的表格结构,这个插件不能在没有标题的表格上工作。这就是我问题的答案!谢谢:)一年多以后,仍然很有用。谢谢请注意:您不需要一个和,以防您通过init脚本提供列
function _fnColumnIndex(iColumnIndex) {
        return iColumnIndex;
}