开发者问题收集

带有隐藏行的数据表-未捕获的类型错误:无法设置未定义的属性“_DT_CellIndex”

2017-03-01
7298

我正在尝试实现一个带有可扩展行的表格。 这是我目前拥有的代码。

<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 后,我立即收到以下错误:未捕获的类型错误:无法设置未定义的属性“_DT_CellIndex”

知道是什么原因造成的吗?

提前致谢。

2个回答

我遇到过同样的问题,上述方法都无法解决。这个问题让我有点头疼,直到我弄清楚了。

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

错误源于我在 <td> 标签上使用 HTML5 数据属性。具体来说是数据顺序属性。在这种情况下,Datatabes 不支持 <td> 标签上的 colspan。

为了使其正常工作,我将 <td colspan="2"> 标签替换为两个包含数据顺序属性的 <td> 标签。我对下一行使用了相同的属性值,这样当顺序改变时顺序就不会变得混乱。

希望这对某人有帮助!

Shinu K Narayanan
2017-11-08

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

$('#something').addClass("table-striped");
Leskyam
2017-06-13