由于my earlier post没有得到任何回复,我正在重新发布此内容。
我正在使用jQuery的数据表,我偶尔使用下面的代码切换一些列的可见性
tableId.fnSetColumnVis(0, false);
完成此操作后,UI上还有一些其他控件可用于切换可见性。因此,我需要检查(在页面加载时说)如果具有0索引的列是可见/隐藏/存在 - 无论如何。我正在寻找类似$(“#tableId”)的东西.isColumnVisible(columnIndex);
请指教。感谢
答案 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);
} );