JQuery 数据表交换行
JQuery DataTables Swapping Rows
>我创建了一个函数来交换表中的行,但它似乎无法正常工作。行的数据似乎与数组中的数据不匹配。谁能帮助指出我的代码中的错误,或者我如何滥用某些 DataTable 函数?
function swapDataTableRows(selector, row1Index, row2Index)
{
var datatable = selector.DataTable();
var rows = datatable.rows().data();
var row1Data = datatable.row(row1Index).data();
var row2Data = datatable.row(row2Index).data();
datatable.row(row1Index).data(row2Data);
datatable.row(row2Index).data(row1Data);
}
swapDataTableRows(table, 2, 3) - 它将交换第 1 行和第 2 行。如果我在索引中添加 1,那么它就会超出界限。
我不确定是否理解了你的问题...
我尝试创建一个简单的演示来理解:
http://jsfiddle.net/q0zb1rkc/
。在您的函数中,您永远不会使用新的(编辑的)数据draw
表:
我更改了脚本的这 2 行:
datatable.row(row1Index).data(row2Data);
datatable.row(row2Index).data(row1Data);
我补充.draw()
:
datatable.row(row1Index).data(row2Data);
datatable.row(row2Index).data(row1Data);
宽度也.draw()
DOM 的变化以及 ROW1 和 ROW2 的交换。
从Frogmouth的回答中,
`http://jsfiddle.net/bobxdr7c/`
我添加了一些更改。
由于在实例化数据表时将排序选项设置为 true 作为默认值,每当您尝试交换他们的数据并重新绘制它时,它看起来都不是您所期望的。
要解决此问题,
- 检查您的"订购"选项设置为"假"。
- 不要调用 draw() 函数两次。 在最后一条语句调用一次就足够了。
附言嗯,看来我不能直接在帖子中制作jsfiddle链接。 :(
如果这不是第一次切换行,则很可能使用了错误的行索引。DOM 中显示的索引不一定是该行在 API 中的索引。您是否尝试过使用特定选择器(如其 id)对行进行寻址?例如:datatable.row("#row1id")
此外,要在 DOM 中更新更改,您需要在所有数据切换完成后调用datatable.draw()
。
相关文章:
- 如何在映射数组中添加换行符
- JQuery:向多个匹配结果添加换行符的最简单方法
- 在文本区域中使用jQuery.text()保持换行符
- Internet Explorer中的文本换行错误
- 从Javascript警报中防止换行
- javascript替换换行符和特殊字符
- 换行符拆分返回“”;未定义”;
- javascript中换行的regexp
- 编辑数据库输入时在文本框上换行
- 在 JS 中添加字符串之前强制换行
- 如何使用web浏览器在NoSQL数据中呈现换行符
- 换行符插入jquery选择器
- jquery使用val()复制值似乎可以删除换行符
- 文本区域-获取每一行,找到换行符
- 处理字段中带有换行符的csv文件-node.js
- 使用jquery将单个换行符替换为span元素
- javascript/jQuery:在title中添加换行符——在IE9中有效,但在IE8中无效
- 如何使用javascript换行
- 咖啡脚本意外换行符
- 在PDF中查看时,我的行中出现换行.(添加减号时)