0

datatables.net から datatables jquery プラグインを動的に埋めるページがあります。

ページには 4 つのテーブルが生成されており、これは .each jquery 呼び出しによって実行されます。これらのデータテーブルを保持する配列をセットアップしました。

oTable[x].  

データがデータテーブルに入力されたら、次の関数を呼び出してフィルタリングをインスタンス化する必要があります。

oTable[x].fnFilter("^" + $(this).val() + "$", 8, true);

新しいテーブルが作成されるたびにカウントするカウンターを実行しています。そうすることで、for ループを使用してフィルタリングを処理しようとしていました。

 for (var x = 1; x < counter; x++) {
    $("#selectMetricImperial" + x).live('change', function () { oTable[x].fnFilter("^" + $(this).val() + "$", 8, true); });
  } 

残念ながら、うまくいかないようです。ドロップダウンを介してフィルタリングを実行すると、.live 行に移動しますが、全員を x=1 として実行します。他の何かが間違っていると思います。

このコードは動作しますが、動的ではありません:

$("#selectMetricImperial" + 1).live('change', function () { oTable[1].fnFilter("^" + $(this).val() + "$", 8, true); });
$("#selectMetricImperial" + 2).live('change', function () { oTable[2].fnFilter("^" + $(this).val() + "$", 8, true); });
$("#selectMetricImperial" + 3).live('change', function () { oTable[3].fnFilter("^" + $(this).val() + "$", 8, true); });
$("#selectMetricImperial" + 4).live('change', function () { oTable[4].fnFilter("^" + $(this).val() + "$", 8, true); }); 

私が望んでいるのは、データテーブルを作成する .each ループの最後に渡されたカウンターに基づいて、上記のコードを動的に生成することです。たとえば、counter=5 の場合、各ドロップダウンでフィルタリングが機能するように、上記のステートメントが 5 つ生成されます。

これを適切に説明していることを願っています。そうでない場合は、質問してください。問題をより適切に解決できるように質問を調整します。

助けてくれてありがとう!

4

1 に答える 1