0

我写了一个似乎可以正常工作的逻辑,然后最近出现了一个错误。我正在做的是允许用户向数据集添加一行或多行。他们添加的数据被传递给 AJAX post 方法,其中发布的数据返回一组数据,我将其附加到刚刚以隐藏“数据”属性的形式创建的行,这再次起作用. 但是我意识到我的问题是,这些属性被添加到表的第一行而不是新创建的行,我不知道如何获取最后一个新行并以方式附加属性我想要它,它似乎对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以匹配索引数据表为自己的目的管理数据而保留的数据,所以我最终做的是将行数作为变量

IE:

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

这解决了我的问题。感谢那些看过,考虑过帮助的人。我已经解决了这个问题。

于 2013-03-26T17:06:06.473 回答