具有隐藏行的DataTables - 未捕获的TypeError:无法设置未定义的属性'_DT_CellIndex'

时间:2017-03-01 13:10:51

标签: php html5 datatables

我正在尝试使用可扩展行来创建表。 这是我到目前为止的代码。

<table id="something" class="table table-responsive table-condensed table-striped">
<thead>
    <tr>
        <th>Name</th>
        <th>Status</th>
    </tr>
</thead>
<tbody>
    <?php
    foreach ($info as $var) {
        ?>
        <tr data-toggle="collapse" data-target="#accordion<?php echo $var['id'] ?>" class="clickable">
            <td><h4><?php echo $name ?> </h4></td>
            <td class="<?php echo $colors[array_rand($colors)] ?>">Status</td>
        </tr>
        <tr>
            <td colspan="2">
                <div id="accordion<?php echo $var['id'] ?>" class = "collapse">

                </div>
            </td>
        </tr>
        <?php
    }
    ?>
</tbody>

表格加载没有任何问题。

我的目标是按状态或名称排序,并使用一些DataTables选项。

一旦我加载DataTables,我就会收到以下错误:Uncaught TypeError:无法设置未定义的属性'_DT_CellIndex'

知道可能导致这种情况的原因吗?

提前致谢。

2 个答案:

答案 0 :(得分:1)

我有同样的事情,上面没有一个想法为我修好了。在我弄明白之前,这个有点头疼。

我的表格只有两列,我不时使用<tr><td colspan="2"><td></tr>。该表在语法上是正确的。我使用colspans来分隔数据的逻辑部分。

错误来自我在<td>标签上使用HTML5数据属性这一事实。特别是数据顺序属性。在这种情况下,Datatabes不支持<td>标记上的colspans。

为了让我能够正常使用,我将<td colspan="2">标记替换为包含数据顺序属性的两个<td>标记。我为接下来的行使用了相同的属性值,以便在订单更改时订单不会变得不稳定。

希望能帮助别人!

答案 1 :(得分:0)

我不知道为什么,但它似乎与“table-stiped”类有关。解决方案,在您的javascript代码将您的表“转换”为DataTable后,您可以添加“table-striped”类,这样就可以了,如下所示:

$( '#东西')addClass( “表条纹”);