Select 使用 Jquery 的数据表中所有页面的所有内容
Select all contents from all pages from a DataTable using Jquery
我正在使用一个包含多个页面的数据表。我使用 Select 全部(基于 jQuery)功能,该功能适用于 select 正在查看的当前页面中的所有记录。但问题是
我无法 select table
中不同页面的所有记录
如果我 select 在一页记录并移动到下一页,则在第一页记录 select 的记录将丢失。
select 所有脚本
$(document).ready(function() {
$('#checkall').click(function(event) { //on click
if(this.checked) { // check select status
$('.checkbox1').each(function() {
this.checked = true;
});
}else{
$('.checkbox1').each(function() {
this.checked = false;
});
}
});
});
有人可以帮忙吗?
谢谢
通过在 DOM 上使用 jQuery,您只能到达可见的行。您将需要访问 table 的 dataTables 内部版本,即它的 "cache"。这是一个 "checkall" 函数遍历所有行,使用 class .checkbox1
:
更改复选框的选中状态
$('#checkall').click(function(event) { //on click
var checked = this.checked;
table.column(0).nodes().to$().each(function(index) {
if (checked) {
$(this).find('.checkbox1').prop('checked', 'checked');
} else {
$(this).find('.checkbox1').removeProp('checked');
}
});
table.draw();
});
演示 -> http://jsfiddle.net/05xnxzbd/
以上实际上可以通过几种不同的方式完成。这是最简单的方法,我们知道第一列上有一个复选框。使用 to$()
让我们可以立即在内容上使用 jQuery。
您也可以遍历 table.rows().data().each(function(..
并定位包含不同复选框等的多个列。
jQuery DataTables 从 DOM.
中移除屏幕上未显示的元素
使用 $()
DataTables API 方法可以访问 table 中的所有节点,而不仅仅是屏幕上显示的节点。
$('#checkall').click(function(){
table.$('.checkbox1').prop('checked', this.checked);
});
我正在使用一个包含多个页面的数据表。我使用 Select 全部(基于 jQuery)功能,该功能适用于 select 正在查看的当前页面中的所有记录。但问题是
我无法 select table
中不同页面的所有记录如果我 select 在一页记录并移动到下一页,则在第一页记录 select 的记录将丢失。
select 所有脚本
$(document).ready(function() {
$('#checkall').click(function(event) { //on click
if(this.checked) { // check select status
$('.checkbox1').each(function() {
this.checked = true;
});
}else{
$('.checkbox1').each(function() {
this.checked = false;
});
}
});
});
有人可以帮忙吗?
谢谢
通过在 DOM 上使用 jQuery,您只能到达可见的行。您将需要访问 table 的 dataTables 内部版本,即它的 "cache"。这是一个 "checkall" 函数遍历所有行,使用 class .checkbox1
:
$('#checkall').click(function(event) { //on click
var checked = this.checked;
table.column(0).nodes().to$().each(function(index) {
if (checked) {
$(this).find('.checkbox1').prop('checked', 'checked');
} else {
$(this).find('.checkbox1').removeProp('checked');
}
});
table.draw();
});
演示 -> http://jsfiddle.net/05xnxzbd/
以上实际上可以通过几种不同的方式完成。这是最简单的方法,我们知道第一列上有一个复选框。使用 to$()
让我们可以立即在内容上使用 jQuery。
您也可以遍历 table.rows().data().each(function(..
并定位包含不同复选框等的多个列。
jQuery DataTables 从 DOM.
中移除屏幕上未显示的元素使用 $()
DataTables API 方法可以访问 table 中的所有节点,而不仅仅是屏幕上显示的节点。
$('#checkall').click(function(){
table.$('.checkbox1').prop('checked', this.checked);
});