Ale*_*nic 4 javascript datatable jquery datatables
一直试图解决这个问题:
在我的DataTable下指数6列,我有克罗地亚语一个布尔 - > DA 1和NE为0.有一次,我想火,将删除包含"DA"的所有行的列下索引程序6,但是,经过以下程序:
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 {
}
} );
}
Run Code Online (Sandbox Code Playgroud)
我只删除了一行(可能是第一个检测到的)以及控制台中的以下内容:
Uncaught TypeError: Cannot read property '6' of undefined
Run Code Online (Sandbox Code Playgroud)
另外,我尝试切换tableSelectedProducts.row(rowIdx).remove().draw(false); with this.remove().draw(false); 并且它只删除它检测到的第一行时完全相同的错误.
背景中发生了什么以及如何解决这个问题?这在我看来,(下指数6未定义列)从数据表中删除一个行的所有数据不存在了以后,当我试图CONSOLE.LOG(这)对每个检测到的行,我不删除第一个检测到的行后获取任何输出,但上面有错误.
在循环中通过索引删除数组项是不好的做法.删除一个项目后,所有索引都可能已更改.最好选择nodes要删除的行dom列表,然后删除它们.这是一个例子:
$('#delete').on('click', function() {
var nodes = [];
table.rows().every(function(rowIdx, tableLoop, rowLoop) {
if (this.data()[3] == 'Edinburgh') nodes.push(this.node())
})
nodes.forEach(function(node) {
table.row(node).remove().draw()
})
})
Run Code Online (Sandbox Code Playgroud)
演示 - > http://jsfiddle.net/LqzLzxon/
| 归档时间: |
|
| 查看次数: |
1647 次 |
| 最近记录: |