で特定の文字列を含むすべての行を削除するには、しばらくの間、これをうまくしようとして:のDataTableのテーブルをループし、特定の列
私のDataTableのインデックス6の下の列の、私はクロアチア語にブール値を持っています - 私は、次の手順の後、しかし、インデックス6の下の欄に「DA」を含むすべての行を削除します手順を発射したいもの時点で0の1とNEのための> DA:
function deleteSelectedDiscountedProducts() {
tableSelectedProducts.rows().every(function (rowIdx, tableLoop, rowLoop) {
var currentData = this.data();
if (currentData[6].indexOf("DA") >= 0) {
tableSelectedProducts.row(rowIdx).remove().draw(false);
} else {
}
});
}
I削除された行(おそらく最初に検出された行)を1つだけ取得し、コンソールで次の行を取得します。
Uncaught TypeError: Cannot read property '6' of undefined
また、tableSelectedProducts.row(rowIdx).remove()を切り替えてみました。draw(false); with this.remove()。draw(false);検出した最初の行だけを削除することは絶対に同じエラーです。
バックグラウンドでは何が起こっており、これを解決するにはどうすればよいですか?それは私には、1つの行を削除した後、データテーブルからすべてのデータが存在しない(インデックス6の下の列は未定義です)、私が検出した各行に対してconsole.log(これ)を試みたときに、最初に検出された行が削除された後に出力が出ますが、上記のエラーが発生します。
シンプルで素晴らしいです! 1つの行が削除されると、インデックスが変更されるとは決して考えませんでした。ありがとう、あなたは天才です。 –
このメソッドを実装しようとすると、rowIdx、tableLoop、およびrowLoopはすべて定義されていません。 – paparush
@paparush、コードなしで伝えます。しかし、「every」は1.10.6で初めて導入され、以来進化してきたことに注意してください。古いバージョンを使用している可能性があります。 – davidkonrad