使用DataTable jQuery插件时出现Javascript错误

时间:2010-04-16 00:33:11

标签: javascript jquery datatable

我收到一个JS错误,知道它意味着什么,以及如何解决它。 (JS noob在这里)

错误:“未定义tId”

有错误的JS行:“if(s [i] .sInstance = tId){”

更多信息

我正在使用数据表(http://datatables.net)jQuery插件。

我有两个表,在页面上加载了一个“dataTable”类(在jQuery UI选项卡中)。这些表按预期呈现,但我在Firebug中得到了上面的错误。

附件是我的数据表配置文件...

$(document).ready(function() {

//Take from: http://datatables.net/forums/comments.php?DiscussionID=1507
// before creating a table, make sure it is not already created. 
// And if it is, then remove old version before new one is created        
var currTable = $(".dataTable");
if (currTable) {
  // contains the dataTables master records
  var s = $(document).dataTableSettings;
  if (s != 'undefined') {
    var len = s.length;
    for (var i=0; i < len; i++)
    {   
        // if already exists, remove from the array
        if (s[i].sInstance = tId) {
            s.splice(i,1);
        }
    }

  }
}

oTable = $('.dataTable').dataTable({

        "bJQueryUI": true,
        "sPaginationType": "full_numbers",
        "bFilter": false


}); 
});

错误意味着什么,我该如何解决?

2 个答案:

答案 0 :(得分:0)

它意味着它:从未分配tId变量。因此,您无法将其分配给另一个变量。

该代码存在一些问题。

首先:

var currTable = $(".dataTable");
if (currTable) {

... currTable将永远与jQuery相提并论。这是因为即使是一个空阵列也是真的。预期的测试可能是if (currTable.length > 0)

看起来这是测试它是字符串还是数组:

if (s != 'undefined') {

您可以改为if ($.isArray(s)) {

最后,当你拼接一个你正在迭代的数组时,你会遇到索引问题。

相反,我相信您要做的是迭代$('。table')返回的表格,并针对s测试这些元素的ID。

答案 1 :(得分:0)

  

我有两张桌子   “dataTable”加载在页面上(内部   的jQuery UI标签)。表格呈现   正如所料,但我得到上面的错误   在Firebug。

我认为你需要为每个表使用不同的类名......

var oFirstTable;
var oSecondTable;

$(document).ready(function() {

    // class = FirstTable
    oFirstTable = $('.FirstTable').dataTable({
        "bJQueryUI": true,
        "sPaginationType": "full_numbers",
        "bFilter": false
    }); 

    // class = SecondTable
    oSecondTable = $('.SecondTable').dataTable({
        "bJQueryUI": true,
        "sPaginationType": "full_numbers",
        "bFilter": false
    }); 
});

我目前在我的应用程序的几个页面上使用了2个DataTables,它们运行良好。