jQuery数据表隐藏列而不从DOM中删除它
我需要隐藏一个列,使其不显示在jquery数据表中。 当我使用bVisible属性隐藏列时,它将从DOM中消失 我想将列的表单元格的display属性设置为none,这样这些值就不会出现在视图中,但它们应该仍然存在于DOM中,因为我要隐藏的列唯一地标识行,并且我需要知道行选择上的唯一ID。如何做到这一点 我正在使用aaData属性和服务器端分页填充表 查看了这个问题,但这些选项将其从DOM中删除。jQuery数据表隐藏列而不从DOM中删除它,jquery,css,dom,datatables,Jquery,Css,Dom,Datatables,我需要隐藏一个列,使其不显示在jquery数据表中。 当我使用bVisible属性隐藏列时,它将从DOM中消失 我想将列的表单元格的display属性设置为none,这样这些值就不会出现在视图中,但它们应该仍然存在于DOM中,因为我要隐藏的列唯一地标识行,并且我需要知道行选择上的唯一ID。如何做到这一点 我正在使用aaData属性和服务器端分页填充表 查看了这个问题,但这些选项将其从DOM中删除。 您可以使用方法hide $(element).hide(); 要显示元素,请使用方法show:
您可以使用方法
hide
$(element).hide();
要显示元素,请使用方法show
:
$(element).show();
要获得所需的列,您可以使用jquery中的第n个子项选择器。您应该使用
类名
以及或
在css中定义hide\u column
类,如下所示
.hide_column {
display : none;
}
有两种方法可以指定该。隐藏列
类:
使用columnDefs
(为第一列指定自定义类):
或列
$('#example').DataTable( {
"columns": [
{ className: "hide_column" },
null,
null,
null,
null
]
} );
代码片段
旧答案 尝试添加
"sClass": "hide_column"
这将使该专栏隐藏起来…以丹尼尔的答案为基础: css: 在datatables init中:
"aoColumnDefs": [ { "sClass": "hide_me", "aTargets": [ 0 ] } ] // first column in visible columns array gets class "hide_me"
请记住将隐藏类添加到thead单元格中:
<thead>
<th class="hide_me">First Column</th>
<th>Second Column</th>
<th>Third Column</th>
</thead>
第一列
第二列
第三纵队
如果您正在使用服务器端处理,并且希望在数据表中不显示数据的情况下从ajax源传入数据,那么这也是一种有用的策略。您仍然可以在前端检索列的值,而无需显示它。有助于通过隐藏数据值等进行过滤
例如:
// In datatables init file
<script>
var filteredValues = [];
$('td.your_filtering_class').each(function(){
var someVariable = $(this).find('.hide_me').html();
filteredValues.push(someVariable);
}
</script>
//在datatables初始化文件中
var filteredValues=[];
$('td.your_filtering_class')。每个(函数(){
var someVariable=$(this.find('.hide_me').html();
filteredValues.push(someVariable);
}
如果要隐藏多个列:
这是我对美国的贡献 不确定代码是否正确,但它的工作 如果你有多个像我一样的设置栏
$('#example').dataTable( {
"columnDefs": [ {
"targets" : 'no-sort',
"orderable": false,
"order": [],
}],
"columnDefs": [ {
"targets" : 'hide_column',
"orderable": false,
"order": [],
"visible": false
}]
} );
这个答案是正确的,但重要的是要注意,除非将hide_column类添加到CSS中,否则它不起作用节使它看起来似乎当前答案不再需要它。在列中使用了sClass标记。它像一个符咒一样工作。谢谢。@Siddharth,答案有多旧?总之,我刚刚替换了大写DHi!我有一个问题。我在我的数据表中看到了它,也使用了它,但我的问题是。每行我的dataTables有两个复选框,一个是状态复选框,另一个是ID复选框。我隐藏了ID列,这样它就不会显得凌乱。目的是我可以更新dataTable中的数据。我将dataTable包装在一个
中,这样它就可以传送到服务器端。现在发生的情况是,当我隐藏并尝试更新时,让我们假设第一页是da的1-10ta。它更新了,没有错误。但在更新第2页时,它不会读取隐藏列。它从服务器产生错误@Daniel@ERROR401我认为你最好用所有需要的代码(最少的示例)打开一个新的Q。这是不正确的。他们特别指定他们不想使用visible属性。
// In datatables init file
<script>
var filteredValues = [];
$('td.your_filtering_class').each(function(){
var someVariable = $(this).find('.hide_me').html();
filteredValues.push(someVariable);
}
</script>
$('#example').dataTable({
"columnDefs": [{
"targets": [0,1,3], //Comma separated values
"visible": false,
"searchable": false }
]
});
$('#example').dataTable( {
"columnDefs": [ {
"targets" : 'no-sort',
"orderable": false,
"order": [],
}],
"columnDefs": [ {
"targets" : 'hide_column',
"orderable": false,
"order": [],
"visible": false
}]
} );