0

適切に機能しているように見えるロジックを作成しましたが、最近バグが発生しました。私がやっていることは、ユーザーが 1 つまたは複数の行をデータ セットに追加できるようにすることです。彼らが追加したデータは AJAX ポスト メソッドに渡され、ポストされたデータは一連のデータとともに返されます。これは、隠し「データ」属性の形式で作成されたばかりの行に追加されます。 . しかし、私の問題に気付いたのは、これらの属性が新しく作成された行ではなくテーブルの一番上の行に追加されていることです。そのため、最後の新しい行を取得して属性を追加する方法がわかりません私はそれがしたい、それがtbody.

簡単に要約すると、新しい行はテーブルに適切に追加され、視覚的に適切であり、属性の形式で設定したいdata属性が機能します。ただし、どの行に追加するかが混在しています。それで、私の現在のコードは次のとおりです。

taskmanagerExcludeTable.fnAddData([$('#source_filter_type option:selected').text(), jqVal, '<img src="/images/icons/png/light/recycle_bin.png" alt="Delete Exclude" class="datasource_exclude_delete" data-idr="reference">']);
var theNode = taskmanagerExcludeTable.fnSettings().aoData[0].nTr;
theNode.setAttribute('data-filter_id',obj.data.filter_id);
theNode.setAttribute('data-filter_type',params.filter_type);
theNode.setAttribute('data-task_id',params.task_id);
theNode.setAttribute('data-task_type',$('#source_filter_type option:selected').text());

私が言いたいのは、この行:

var theNode = taskmanagerExcludeTable.fnSettings().aoData[0].nTr;

より具体的aoData[0]には私の問題です。メソッドにハードコードされているため0、最初の行を想定しています。私の質問は、どうすればこれを動的に操作できるので0、ハードコーディングされておらず、作成されている行の正しいインデックスを取得する何らかの形式の変数を使用できますか?

4

1 に答える 1

0

じっと座っていることができず、自分の質問について考え始め、何度も読み返しました。最後にそれを理解するには、tbodyを使用してテーブルのすべての行をカウントし、それから.length減算して、データテーブルが独自の目的でデータを管理するために保持するインデックス付けと一致させる必要があります。1行数を変数として取る

すなわち:

var whichRow = $('#mytable tbody tr').length - 1;
var theNode = taskmanagerExcludeTable.fnSettings().aoData[whichRow].nTr;

そしてそれは私の問題を解決しました。閲覧したり、支援を検討したりした人に感謝します。問題を解決しました。

于 2013-03-26T17:06:06.473 に答える