DataTables:TypeError:我未定义

时间:2016-11-23 15:05:36

标签: javascript jquery html datatables

我有一张如下表格 Table

该表为rowspans,因为对于某些用户,我需要有2行(就像你在'D'列看到的那样)

我正在尝试使用数据表:

<table class="table table-bordered table-hover table-striped" id="myTable">
(...)
</table>

我在代码的开头称这个:

 <script>
    $( document ).ready(function() {
         $('#myTable').DataTable();
    });
</script>

但我有这个错误:

  

TypeError:我未定义

表格不像数据表类型!

也许它不适用于rowpans? 有什么想法??

6 个答案:

答案 0 :(得分:9)

FWIW如果您在每一行中没有相同数量的<td></td>元素,您也会收到此错误。确保您没有添加任何带有导航按钮或链接的行或任何类似的行,这些行的格式可能与其他行的格式不同。

答案 1 :(得分:5)

jQuery DataTables插件默认情况下不支持ROWSPAN属性。但是,jQuery DataTables有一个RowsGroup插件,它将单元格组合在一起,使它们看起来就像使用了ROWSPAN属性一样。

请参阅this example以获取代码和演示。

有关详细信息,请参阅jQuery DataTables – ROWSPAN in table body TBODY

答案 2 :(得分:2)

我说你的表不是数据表,因为你有未定义的数据而且'i'被称为DataTable循环的内部迭代器,使用rowspans是问题 - 我会重新设计你的表有每个数据的整行(在你的例子250中需要一个整行,除了D之外的所有其他列都有重复的值) - 完全有可能使用css来隐藏为同一视觉效果重复的值,这样就可以了允许数据表过滤仍然适用于那些行(尽管在过滤这些'额外'行时,您可能需要一些钩子来显示隐藏数据)。

答案 3 :(得分:1)

对于未来的参考者。

这是因为您使用的Rowspancolspan不受支持。

如果您想使用colspan,可以在</tbody>之外使用它。

感谢。

答案 4 :(得分:0)

如果您的表格格式不正确(例如,您应该拥有),则会发生此问题 <table>   <thead>    <th>   <tbody>    <tr>       <td>

然后,表的ID不应与同一页面上其他任何事物的ID重叠。否则,您将得到类似i被未定义或c未定义的错误。

答案 5 :(得分:0)

我面临着同样的问题。错误的主要原因是由于使用了colspan和rowspan。因为jQuery DataTables插件不支持它们,因此会导致错误。

  

TypeError:我未定义

因此,如果您在<tr></tr>内的任何<tbody></tbody>中使用任何colspan或rowpan,请确保每个<tr></tr>的每一行都具有相同的<td></td>号。如果不是,请重复<td style='display:none'></td>以匹配相同的数字,例如

<table border='1' cellspacing='2'>
   <thead>
      <tr>
         <td>A</td>
         <td>B</td>
         <td>C</td>
      </tr>
   </thead>
   <tbody>
      <tr>
         <td rowspan="2">1</td>
         <td rowspan="2">name</td>
         <td>200</td>
         <td style='display:none'></td>
         <td style='display:none'></td>
      </tr>
      <tr>
         <td >300</td>
         <td style='display:none'></td>
         <td style='display:none'></td>
      </tr>
   </tbody>
</table>

我认为通过遵循上述建议可以帮助您确定。