我正在使用dataTable脚本轻松地对从我的数据库中提取的数据进行排序,并使用它们的内置函数来显示/隐藏某些列:
function fnShowHide(iCol) {
var oTable = $('#inventory').dataTable();
var bVis = oTable.fnSettings().aoColumns[iCol].bVisible;
oTable.fnSetColumnVis( iCol, bVis ? false : true );
}
<a href="javascript:void(0);" class="cost" onclick="fnShowHide(10);">Cost</a>
问题是,如何制作它,以便在隐藏列时链接文本显示“显示费用”,如果列可见,是否说“隐藏费用”?
答案 0 :(得分:1)
也许这会奏效。您似乎正在为onclick属性分配列索引,可能会将一个id添加到锚点以用作访问者;类似的东西:
function fnShowHide(iCol) {
var oTable = $('#inventory').dataTable();
var bVis = oTable.fnSettings().aoColumns[iCol].bVisible;
oTable.fnSetColumnVis( iCol, bVis ? false : true );
//--anchor text modifier
var $anchor = $('#anchor_' + iCol);
var albl = $anchor.text();
if(albl.indexOf('Show')!=-1 || albl.indexOf('Hide')!=-1 ){
albl = (bVis)? albl.replace('Show', 'Hide') : albl.replace('Hide', 'Show');
}else{
albl = (bVis)? 'Hide ' + albl : 'Show ' + albl;
}
$anchor.text(albl)
}
<a href="javascript:void(0);" class="cost"
id="anchor_10" onclick="fnShowHide(10);">Cost</a>
我的语法错误:更改应用于以下行应该是您要查找的结果:
if(albl.indexOf('Show')!=-1 || albl.indexOf('Hide')!=-1 ){
/*this is affected line*/ albl = (bVis)? albl.replace('Show', 'Hide') : albl.replace('Hide', 'Show');
}else{