web-dev-qa-db-ja.com

DataTables:TypeError:iは未定義です

次のような表があります Table

一部のユーザーには2行が必要なため(行 'D'に表示されるので)

私はデータテーブルを使用しようとしています:

<table class="table table-bordered table-hover table-striped" id="myTable">
(...)
</table>

そして、コードの冒頭でこれを呼び出します:

 <script>
    $( document ).ready(function() {
         $('#myTable').DataTable();
    });
</script>

しかし、私はこのエラーがあります:

TypeError:iは未定義です

そして、テーブルはデータテーブル型のようなものではありません!

多分それはrowspansで動作しませんか?何か案が??

13
Erbi Silva

FWIWすべての行に同じ数の<td></td>要素がない場合にも、このエラーが発生する可能性があります。他の行と同じ方法でフォーマットされていない可能性のあるnavボタンやリンクなどの行を追加していないことを確認してください。

9
Dylan Smith

jQuery DataTablesプラグインは、デフォルトでROWSPAN属性をサポートしていません。ただし、セルをグループ化してROWSPAN属性が使用されているように見えるようにするjQuery DataTables用の RowsGroup プラグインがあります。

コードとデモについては この例 をご覧ください。

詳細については、 jQuery DataTables –テーブル本体TBODYのROWSPAN を参照してください。

5
Gyrocode.com

未定義のデータがあり、参照される「i」がDataTableループの内部イテレータであるため、テーブルはデータテーブルではないと思います。rowspansの使用が問題です。テーブル全体を行に再設計します。データの各部分に対して(例では、250はDを除く他のすべての列に重複する値を持つ行全体を必要とします)-cssを使用して、同じ視覚効果で重複する値を非表示にすることができます。これにより、データテーブルフィルタリングが可能になります。これらの行で動作するようにします(ただし、これらの「余分な」行がフィルタリングされると、非表示のデータを表示するためにいくつかのフックが必要になる場合があります)。

2
A Macdonald

将来のリファラー用。

サポートされていないRowspanまたはcolspanを使用しているためです。

Colspanを使用する場合は、</tbody>

ありがとう。

2
Nikunj Dhimar

この問題は、テーブルの形式が適切でない場合に発生します。たとえば、<table><thead><th><tbody><tr><td>

そして、テーブルのIDは、同じページの他のIDと重複しないようにします。それ以外の場合、iが未定義またはcが未定義のようなエラーが発生します。