jQuery datatable - 使用列索引,检查jQuery数据表中的列是否可见/存在

时间:2012-02-20 21:30:10

标签: jquery datatable visible

由于my earlier post没有得到任何回复,我正在重新发布此内容。

我正在使用jQuery的数据表,我偶尔使用下面的代码切换一些列的可见性

tableId.fnSetColumnVis(0, false);

完成此操作后,UI上还有一些其他控件可用于切换可见性。因此,我需要检查(在页面加载时说)如果具有0索引的列是可见/隐藏/存在 - 无论如何。我正在寻找类似$(“#tableId”)的东西.isColumnVisible(columnIndex);

请指教。感谢

2 个答案:

答案 0 :(得分:1)

我根本不知道jquery数据表,但我想你可以检查标头是否将css'display属性设置为hide。 示例代码:

if($("#tableId .th-1").css("display")=="none"){
   //do hidden related action
} else {
   //do visible related action
}

假设您正在检查的列具有类th-1。 如果你想要一个更通用的方法,我可以建议:

$("#tableId th").each(function(index, element){

    if($(this).css("display")=="none"){
       //do hidden related action
    } else {
       //do visible related action
    }

});

这将检查你桌子的每一个。

答案 1 :(得分:1)

好吧,没有人能够真正回答你的问题而且我也在寻找这个微不足道的任务,我花了比预期更长的时间来了解如何做到这一点。

这是如何,非常简单但没有正确记录。

 /* Get the DataTables object again - this is not a recreation, just a get of the object*/
var oTable = $('#example').dataTable();

var bVis = oTable.fnSettings().aoColumns[iCol].bVisible;
oTable.fnSetColumnVis( iCol, bVis ? false : true );

基本上,fnSettings()函数也有aoColumns属性可用,它将保存初始化时设置的所有列属性。

如果您从可见列中获取正确的索引时遇到问题,可以尝试使用此方法(尽管它似乎不适用于标题的唯一正文单元格,因此您必须进行一些计算以找出标题细胞)。

$('.dataTable td').click( function () {
// Get the position of the current data from the node
var oTable = $(this).closest('.dataTable').dataTable();
var aPos = oTable.fnGetPosition( this );
console.log(aPos);
} );