DataTables错误'无法执行appendChild()'

时间:2014-06-03 13:57:45

标签: javascript jquery datatables

Uncaught NotFoundError: Failed to execute 'appendChild' on 'Node': The new child element is null. jquery.tools.min.js:38
f.extend.clean jquery.tools.min.js:38
f.buildFragment jquery.tools.min.js:38
f.fn.extend.domManip jquery.tools.min.js:38
f.fn.extend.append jquery.tools.min.js:37
_fnFeatureHtmlLength jquery.dataTables.js:3209
_fnAddOptionsHtml jquery.dataTables.js:2099
_fnInitialise jquery.dataTables.js:3083
(anonymous function) jquery.dataTables.js:6301
e.extend.each jquery.tools.min.js:36
e.fn.e.each jquery.tools.min.js:36
DataTable jquery.dataTables.js:5838
(anonymous function) index.php?r=rfp:148
n jquery.tools.min.js:36
o.fireWith jquery.tools.min.js:36
e.extend.ready jquery.tools.min.js:36
c.addEventListener.B jquery.tools.min.js:36

一个问题是我使用getElementbyId作为onclick函数,该函数不在页面上但在其他地方(执行ajax调用)。这可能是造成错误的原因。我想知道如何保持这个并修复这个错误的方法如何?

编辑:在下面添加了一个示例行(有很多)

<table id="main_table" class="dataTable no-footer">
    <thead>
        <tr>
            <td>Stuff</td>
            <td>More Stuff</td>
            <td>Even more stuff</td>
        </tr>
    </thead>

    <tbody>
        <tr role="row">
            <td onclick="document.getElementById("cdid").value=232; document.getElementById("viewForm").submit();"> ... </td>
            <td> more things </td>
            <td> even more things </td>
        </tr>
        ...
        More rows of the same format
    </tbody>

</table>

1 个答案:

答案 0 :(得分:3)

我遇到了与jQuery dataTables类似的问题。我通过更改jQuery版本以某种方式解决了它。以前,我使用的是版本1.6.4的jQuery

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js" type="text/javascript"></script>

但是,稍后,我将其更改为最新版本,jquery-1.11.0

<script src="//code.jquery.com/jquery-1.11.0.min.js" type="text/javascript"></script>

错误消失了,我可以看到我的桌子。请检查您正在使用的jQuery版本,并将其更改为最新版本。如果你有像我这样的问题,这个解决方案会有所帮助。

并且还要确保,dataTables需要jquery.js而不是jquery.tools.js,如果你使用的是jquery.tools.js,那么将它改为jquery.js(最新版本)并查看它是否有效。 / p>

希望这有帮助, 感谢。