1. ホーム
  2. javascript

[解決済み】TypeError: $(...).DataTable は関数ではありません。

2022-01-18 02:02:59

質問

私のプロジェクトでjQueryのDatatable JSを使用しようとしています。 これ のリンクがあります。

同じソースからライブラリ一式をダウンロードしました。パッケージで提供されているサンプルはすべて問題なく動作しているようですが、それらを私の WebForms CSS,JSが表示されない は全く動作しません。

以下は、私が行ったことです。

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <link href="css/jquery.dataTables.css" rel="stylesheet" type="text/css" />
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <table id="myTable" class="display" cellspacing="0" width="100%">
            <thead>
                <tr>
                    <th>Name</th>
                    <th>Position</th>
                    <th>Office</th>
                    <th>Age</th>
                    <th>Start date</th>
                    <th>Salary</th>
                </tr>
            </thead>
            <tfoot>
                <tr>
                    <th>Name</th>
                    <th>Position</th>
                    <th>Office</th>
                    <th>Age</th>
                    <th>Start date</th>
                    <th>Salary</th>
                </tr>
            </tfoot>
            <tbody>
               <!-- table body -->
            </tbody>
        </table>
    </div>
    <script src="js/jquery.dataTables.js" type="text/javascript"></script>
    <script src="js/jquery.js" type="text/javascript"></script>
    <script type="text/javascript">
        $(document).ready(function () {
            $('#myTable').DataTable();
        });
    </script>
    </form>
</body>
</html>

私のソリューションのJSとCSSのファイル構造は、次のようになります。

マニュアルにあるように、必要なJSとCSSの参照をすべて追加しました。それでもレンダリングは期待通りではありません。CSSはなく、JSさえも動作しません。

また、コンソールでは以下のエラーが表示されます。

ReferenceError: jQuery is not defined
TypeError: $(...).DataTable is not a function

私はまだここに動的なデータをバインドしていない(リピータ内など)それでも動作しません。

どなたか、この問題に対して正しい方向に導いていただけませんか?

どのように解決するのですか?

原因

このエラーには複数の原因が考えられます。

  • jQuery DataTables ライブラリが不足しています。
  • jQueryライブラリがロードされている jQuery DataTablesです。
  • 複数のバージョンのjQueryライブラリがロードされる。

解決方法

以下が含まれます。 ひとつだけ jQuery ライブラリ バージョン 1.7 以降のバージョン 以前 jQuery DataTablesを使用します。

例えば

<script src="js/jquery.min.js" type="text/javascript"></script>
<script src="js/jquery.dataTables.min.js" type="text/javascript"></script>

参照 jQuery DataTables。よくあるJavaScriptのコンソールエラー を参照してください。