jquery - 读取JQuery中隐藏列的值

标签 jquery datatables

我需要隐藏表格上的一列,但之后我无法读取所选行的隐藏列值。

 dtTable = $('#lookupTable').DataTable({
       "columnDefs": [
           {
               "targets": [ 0 ],
               "visible": false,
               "searchable": false               
           }
        ],  

        aaData: data,
        aoColumns: cols,
        paging: false,
        scrollCollapse: true,
        destroy: true

    });

如您所见,第一列现在已隐藏。我正在尝试使用该代码读取列值

    selectedIndex = $(this).find('td:eq(0)').text(); 

如果我从代码中删除 <"visible": false> 我可以读取第一列的值,但如果它被隐藏,它会给我第二列值。

我厌倦了更改“witdh”属性,但它不起作用..

最佳答案

CSS 选择器不起作用,因为 columnDefs 中的 "visible": false 并不意味着该列获得等效的 display: none; code> 标记中的样式属性。

相反,您必须使用 DataTables API 来获取隐藏列中的数据。

函数fnGetData就可以解决这个问题。它返回单元格中的文本数据,该文本数据作为参数传递给函数。

这是文档中的示例

oTable.$('td').click( function () {
    var sData = oTable.fnGetData( this );
    alert( 'The cell clicked on had the value of '+sData );
});

在您的情况下,该列是隐藏的,因此您必须将其与第二个 API 调用结合起来。假设您单击隐藏第一列的行,则可以将 fnGetDatafnGetPosition 函数结合起来。

var position = dtTable.fnGetPosition(this);
var hiddenColumnValue = dtTable.fnGetData(position)[0];

查看文档,其中有一些很棒的示例。

fnGetData()

fnGetPosition()

这是工作代码

  $('#lookupTable tbody').on('click', 'tr', function () {

        selectedIndex = dtTable.row(this).data()[0];   
 });

关于jquery - 读取JQuery中隐藏列的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33083030/

相关文章:

javascript - 数据表 aaSorting 未按正确的列排序

javascript - 与单元格宽度不同的 HTML 表格标题

jquery - jQuery .submit() 问题

javascript - Jquery 显示隐藏内容

javascript - 即使我单击“确定”,模态弹出扩展器仍保持打开状态

jquery - 元素悬停时的背景图像转换

css - 不需要的 CSS 边框样式(DataTables header )

javascript - 将第 3 方 JS 文件导入 Angular 组件

javascript - 背景视频不会在 Chrome 中显示

javascript - Datatable数据绑定(bind)使用knockoutjs