我动态生成表格,每次生成表格时,都会创建一个相应的DataTable对象,我将其存储在一个数组中。
tables1 = {};
我创建对象并获取类似的值(为便于查看而分色):
categoryIds.each( function ( value, index ) {
tables1[value]=jQuery('#tbl' + category_id).DataTable();
});
jQuery.ajax({
url: url,
type: 'get',
}).done(function(data) {
object = jQuery.parseJSON(data);
object.each(function(value, index) {
tables1[value.catid].row.add([value.id, value.title]);
});
categoryIds.each( function ( value, index ) {
tables1[value].draw();
//typeerror here
}
});
上面给出了Uncaught TypeError: Cannot read property 'length' of undefined
错误,但如果我用try catch包围它就会有效。
一旦我创建了表并想要擦除它们,即使这个简单的函数也会给我一个类型错误:
jQuery.each(tables1, function ( index, value) {
tables1[index].clear().draw();
} );
我使用的是DataTables 1.10,谷歌搜索这个错误似乎主要是在处理我没有使用的ajax数据源时出现的。