如何在数据表中复制一行(jQuery DataTables插件)
How can I duplicate a row in DataTables (jQuery DataTables plugin)?
我发现了如何使用这个jQuery代码删除一行。同时单击带有类删除和垃圾图标的 td。
.HTML
<table id="foo" class="display" cellspacing="0" width="100%">
<tbody>
<tr>
<td>Foo1</td>
<td>Foo2</td>
<td>Foo3</td>
<td class="delete">IMAGE src here</td>
<td><img src="http://placehold.it/20x20"></td>
</tr>
</tbody>
JAVASCRIPT
$('#foo tbody').on( 'click', 'tr .delete', function () {
$(this).closest('tr').fadeOut("slow", function(){
$(this).remove();
})
} );
但是我没有找到任何关于复制行的信息。我只想单击带有另一个图标的 td,该行在下面重复。
要复制一行,您需要将其所有数据复制到数组中,然后调用 row.add()
将此数据作为新行插入。
像这样:
<table id="foo" class="display" cellspacing="0" width="100%">
<tbody>
<tr>
<td>Foo1</td>
<td>Foo2</td>
<td>Foo3</td>
<td class="delete">IMAGE src here</td>
<td class="copy">IMAGE src here</td>
<td><img src="http://placehold.it/20x20"></td>
</tr>
</tbody>
$('#foo tbody').on( 'click', 'tr .copy', function () {
var row_data = [];
$(this).closest('tr').find('td').each(function() {
row_data.push($(this).text());
});
// you'll need a reference to your DataTable here
table.row.add(row_data).draw();
});
若要获取对数据表的引用,请将 DataTable()
方法的结果分配给 var。
$(document).ready(function() {
var table = $('#foo).DataTable( { "paging": false, "info": false });
// set up your event handlers, etc.
});
如果使用 jQuery 而不是像 row.add()
这样的 DataTables 方法追加行,则在对表进行排序或分页时将丢失该行。
这是jQuery,它在其下方添加了一行重复的行,其中涉及DataTables。需要注意的是,此方法可能不会保留用户设置的任何排序或筛选。
$('#formtable tbody').on( 'click', 'button.btn-success', function () {
//destroy instance of DataTables
table.destroy(false);
//script assumes button is clicked on the line that needs to be duplicated
var btn = this;
//copy and insert row right below the original
var line = $(btn).parents('tr');
line.after(line.clone());
//since clone retains only input field values, but not dropdown selections,
//each dropdown value must be assigned individually
line.next().find("select.shape").val(line.find("select.shape").val());
line.next().find("select.material").val(line.find("select.material").val());
line.next().find("select.supplied").val(line.find("select.supplied").val());
//re-creating DataTables instance
//notice that "table" has no "var" in front - that's because it is pre-defined.
table = $('#formtable').DataTable({
"columnDefs": [ {
"searchable": false,
"orderable": false,
"targets": "_all"
} ],
"paging": false,
"info": false,
"ordering": true,
"searching": false,
"rowReorder": true
});
//"Index Column" values re-calculation
table.column(0).nodes().each( function (cell, i) {
cell.innerHTML = i+1;
});
});
希望这有帮助。
试试这个:
.HTML
<table id="foo" class="display" cellspacing="0" width="100%">
<tbody>
<tr>
<td>Foo1</td>
<td>Foo2</td>
<td>Foo3</td>
<td class="delete">IMAGE src here</td>
<td class="duplicate"><img src="http://placehold.it/20x20"></td>
</tr>
</tbody>
</table>
脚本
$('#foo tbody').on( 'click', 'tr .delete', function () {
$(this).closest('tr').fadeOut("slow", function(){
$(this).remove();
})
} );
$('#foo tbody').on( 'click', 'tr .duplicate', function () {
var myTr = $(this).closest('tr');
var clone = myTr.clone();
myTr.after(clone);
} );
相关文章:
- 动态插入的表:JQuery未检测到最后一行
- Jquery幻灯片以一行左侧的图像开始,但我希望它从右端开始
- 如何确保JQuery的一行在另一行之前运行
- 使用Ajax和JQuery从SQL数据库中添加和删除一行
- 如何防止在选定的jQuery多选时一行重复条目
- 如何使用jquery复制文本区域中的每一行文本
- jquery插件 - 已选择 - 多项选择不在一行中列出,而是列在一列中
- 如何使用 jQuery 在文本区域中的每一行添加文本
- 使用jQuery删除表行,但禁止删除第一行
- 如果最后一行已经显示,如何防止jQuery加载更多停止函数
- 通过jQuery在文本区域占位符内新建一行
- 如何在jquery菜单中的li项下添加一行
- 试图美化一行jQuery
- 如何在数据表中复制一行(jQuery DataTables插件)
- 用一行(jQuery)连接不同框架中的2个元素
- 在一行jquery中对输入和选择进行操作
- 获取一行jQuery上的最后一个li
- 在表前面加上第一行 jQuery
- 如何从一行jQuery中获取数据
- 在前一行代码完成后运行一行jQuery