Google Chrome浏览器的开发者工具中出现以下错误:
未捕获的类型错误:无法读取未定义的属性“className”
抛出错误的代码是:
var oTable = $('#resultstable').dataTable({
"bAutoWidth" : true,
"iDisplayLength" : 10,
"bFilter" : false,
"bLengthChange" : false
});
resultstable是html中表的id:
<table cellpadding="0" cellspacing="0" border="0" id="resultstable"
name="resultstable" class="display datatable">
奇怪的是,table标签后面有一个if语句,当程序被发送到else if{}
节时,表运行得很好,CSS也正确显示,但当它在if{}
节时,它会抛出上述错误,并且没有应用CSS。
救命啊!
8条答案
按热度按时间q7solyqu1#
另一个答案让我走上了正确的道路。
更简单地说,错误是我创建的表不正确。
我的标题列(当然是在标题内)与我的行列(在正文内)不匹配
在我的情况下,我在标题中有太多的列。
up9lanfz2#
另一个可能的原因是,如果在“aoColumnDefs”属性中列出的列比表中的“td”元素多。
lndjwyie3#
Datatables要求你的html表是完美的。我发现我得到这个错误时,我没有一个相等的
<th>
和<td>
的数量。确保你没有一个额外的头。ej83mcc04#
我遇到了一个和你现在遇到的相同的错误。我曾经在使用Chosen库时遇到过一个非常类似的错误。问题是(在Chosen的例子中)使用了带有
[]
字符的ID,因此混淆了CSS选择器和id之间的Javascript(记住,在CSS中我们可以使用[]
来指定属性)。然而,在DataTables的情况下,我注意到DataTables脚本本身在
tbody
中的每个tr元素的第一个元素之前前置了class = " "
。这是因为php的HTML输出有一个逻辑错误。错误代码:
在长长的表的底部有一个错误,表明postgres无法跳转到第208行。这告诉我需要在
i - 1
或$currentRow - 1
处停止循环。因此有了固定的工作代码:
执行此更改允许DataTables正确执行。
因此,虽然我不能提供一个工作的解决方案,我建议你看看你的html标记,因为这可能是你的问题的来源(例如,你的表有一个
tbody
?)。umuewwlo5#
在我的特定示例中,我将aTargets属性设置为数组索引超出了元素的范围。
这设置了7个td列,但只有6个。将其更改为以下内容更正了它:
inb24sb26#
它抛出这个错误是因为当dom第一次加载时,你使用的是before declare。
对于这个错误,我有一个解决方案写在下面:
你可以添加如果条件特定的元素是不像下面这样未定义
lyr7nygr7#
遇到了类似的问题。根本原因是,当dataTable即将控制表时,我们的代码也试图同时操作表的属性。错误消息没有这样说,但是,一旦表由dataTable单独管理,问题就消失了。
izj3ouym8#
最近我也遇到了同样的问题...经过多次研究,我发现这个问题是由于数据表中绑定了大量的数据(〉1500),目前我将数据限制设置为1000。