jQuery DataTables:未捕获的 TypeError:无法读取未定义的属性“mData”

Posted

技术标签:

【中文标题】jQuery DataTables:未捕获的 TypeError:无法读取未定义的属性“mData”【英文标题】:jQuery DataTables: Uncaught TypeError: Cannot read property 'mData' of undefined 【发布时间】:2015-07-19 05:48:50 【问题描述】:

为什么我会出错

未捕获的类型错误:无法读取未定义的属性“mData”

我尊重 DataTables 的要求(我还阅读了关于我的错误的另一个主题,我尊重每个答案和解决方案)。请帮帮我。

这是我的 php 代码:

<table class="table table-striped table-bordered table-hover" id="sample_1">
        <thead>
            <tr>
                <th class="table-checkbox">
                    <input type="checkbox" class="group-checkable" data-set="#sample_1 .checkboxes"/>
                </th>
                <th>
                     Utilizator
                </th>
                <th>
                     Nume complet
                </th>
                <th>
                     Clasa
                </th>
                <th>
                     Functia
                </th>
                <th>
                     E-Mail
                </th>
                <th>
                     Ultima logare
                </th>
            </tr>
        </thead>
        <tbody>
            <?
               foreach($data["users"] as $student)
               
            ?>
            <tr class="odd gradeX">
                <td>
                    <input type="checkbox" class="checkboxes" value="1"/>
                </td>
                <td>
                     <? echo $student["username"]; ?>
                </td>
                <td>
                     <? echo " ".$student["last_name"]." ".$student["first_name"].""; ?>
                </td>
                <td>
                     <? echo getclass($student["class"]); ?>
                </td>
                <td>
                     <?
                     $functie = 0;
                     if($student["role"] == 1)
                     
                         $functie = 1;
                         echo "Administrator site";
                     
                     if($student["fctsc"])
                     
                         $functie = 1;
                         echo "Director";
                     
                     if($student["diriginte"])
                     
                         $functie = 1;
                         echo "Diriginte";
                     
                     if($student["profesor"])
                     
                         $functie = 1;
                         echo "Profesor";
                     
                     if($functie == 0)
                         echo "Elev";
                     ?>
                </td>
                <td>
                    <a href="mailto:<? echo $student["email"]; ?>">
                        <? echo $student["email"]; ?>
                    </a>
                </td>
                <td class="center">
                     <? echo $student["lastlogin"]; ?>
                </td>
            </tr>
            <?
               
            ?>
        </tbody>
    </table>

【问题讨论】:

你需要发布你是如何初始化数据表的!! 不,我不需要。原因,如果我创建另一个 没有 php 代码,只是 html,一切正常。问题出在该代码中。 问题出在你的dataTable初始化!!你一定写过这样的$("#sample_1").dataTable();发布那部分!@Maurice 你检查过最终(显示在浏览器中)&lt;table&gt; 是否正确/有效? PHP 和 HTML 的混合并没有真正的帮助 - 发布最终 HTML 的示例。您的脚本看起来如何?我想到了dataTables的初始化。
【参考方案1】:

检查天气或不是所有 php 回显实际上在所有行上都输出不是“NULL”的内容,因为 DataTables 会将任何只有 NULL 的单元格视为不存在的内容,这也可能导致该错误。 尝试避免直接将 php 输出到 html 表。

【讨论】:

【参考方案2】:

通常出现这个错误有两个原因:

缺少表头。 表体中td元素的数量与表头中th元素的数量不同。

但是,您的 HTML 代码似乎有正确的列数,请参阅 this example。

更多信息请参见jQuery DataTables: Common javascript console errors - TypeError: Cannot read property ‘mData’ of undefined。

【讨论】:

以上是关于jQuery DataTables:未捕获的 TypeError:无法读取未定义的属性“mData”的主要内容,如果未能解决你的问题,请参考以下文章

jQuery Datatables 错误(未捕获的 TypeError:$ 不是函数)

未捕获的TypeError:无法读取未定义数据表的属性“长度”

jQuery DataTables 错误 - TypeError:无法读取未定义的属性“fnInit”

DataTables FixedColumn“未捕获的 ReferenceError:FixedColumns 未定义”

jquery 数据表:“未捕获的类型错误:无法读取未定义的属性‘长度’”在销毁和重新初始化后。表作为数据源

jquery DataTables 插件:您可以捕获除插件预期的 JSON 之外的服务器端数据吗?