我收到一个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
});
});
错误意味着什么,我该如何解决?
答案 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,它们运行良好。