使用dataTable的显示/隐藏功能时更改链接文本

时间:2013-03-23 01:34:45

标签: jquery

我正在使用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>

问题是,如何制作它,以便在隐藏列时链接文本显示“显示费用”,如果列可见,是否说“隐藏费用”?

1 个答案:

答案 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{