Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery数据表隐藏列而不从DOM中删除它_Jquery_Css_Dom_Datatables - Fatal编程技术网

jQuery数据表隐藏列而不从DOM中删除它

jQuery数据表隐藏列而不从DOM中删除它,jquery,css,dom,datatables,Jquery,Css,Dom,Datatables,我需要隐藏一个列,使其不显示在jquery数据表中。 当我使用bVisible属性隐藏列时,它将从DOM中消失 我想将列的表单元格的display属性设置为none,这样这些值就不会出现在视图中,但它们应该仍然存在于DOM中,因为我要隐藏的列唯一地标识行,并且我需要知道行选择上的唯一ID。如何做到这一点 我正在使用aaData属性和服务器端分页填充表 查看了这个问题,但这些选项将其从DOM中删除。 您可以使用方法hide $(element).hide(); 要显示元素,请使用方法show:

我需要隐藏一个列,使其不显示在jquery数据表中。 当我使用bVisible属性隐藏列时,它将从DOM中消失

我想将列的表单元格的display属性设置为none,这样这些值就不会出现在视图中,但它们应该仍然存在于DOM中,因为我要隐藏的列唯一地标识行,并且我需要知道行选择上的唯一ID。如何做到这一点

我正在使用aaData属性和服务器端分页填充表

查看了这个问题,但这些选项将其从DOM中删除。

您可以使用方法
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
    }]
} );