JavaScript:Jquery 动态隐藏显示列

<html>
<head>
    <script src="jquery-1.6.2.min.js" type="text/javascript"></script>
    <script type="text/javascript">
        $(function(){

            $('#table1 tr td span').each(function() {
                var text = $(this).text();
                $(this).find('input:checkbox').click(function(){
                    var falg = $(this).attr('checked');
                    if (falg =='checked'||falg==true ) {
                        change(0, text);
                    }else{
                        change(1, text);
                    }
                })
            });

        })

        function change(reg, text){
            var index;
            $("#table2 tr").each(function(i){
                if(i==0){
                    $(this).find('td').each(function(){
                        var text2 = $(this).text();
                        if(text2.indexOf(text)>=0){
                            index = $(this).index();
                        }
                    })
                }
                if(reg==0){
                    $(this).find("td:eq("+index+")").hide();
                }else if(reg==1){
                    $(this).find("td:eq("+index+")").show();
                }

            })
        }

    </script>
</head>
<body>
<table width="100%" border="0" cellspacing="0" cellpadding="0" class="h_lie" id="table1">
    <!--列开始-->
    <tr>
        <td>
            <span><input type="checkbox" class="checkbox_but" />第一列</span>
            <span><input type="checkbox" class="checkbox_but" />第二列</span>
            <span><input type="checkbox" class="checkbox_but" />第三列</span>
            <span><input type="checkbox" class="checkbox_but" />第四列</span>
            <span><input type="checkbox" class="checkbox_but" />第五列</span>

        </td>
    </tr>
    <!--列结束-->
</table>
<table id="table2"  border="1"  cellpadding="0"
       cellspacing="0" bordercolor="#a3b0dc" style="border-collapse:collapse;"  >
    <tr >
        <td width="200">第一列</td>
        <td  width="200">第二列</td>
        <td  width="200">第三列</td>
        <td  width="200">第四列</td>
        <td  width="200">第五列</td>
    </tr>

    <tr><td>id</td><td>id1</td><td>id2</td><td>id3</td><td>id4</td></tr>

    <tr><td>id</td><td>id1</td><td>id2</td><td>id3</td><td>id4</td></tr>

    <tr><td>id</td><td>id1</td><td>id2</td><td>id3</td><td>id4</td></tr>

    <tr><td>id</td><td>id1</td><td>id2</td><td>id3</td><td>id4</td></tr>

    <tr><td>id</td><td>id1</td><td>id2</td><td>id3</td><td>id4</td></tr>
</table>

</body>
</html>

第一页隐藏第二页也隐藏

sh_table隐藏列表checkbox
hideIndex  保存的隐藏列ID
changecolor
var hideIndex = $('#hideIndex' ).val();
if(hideIndex!= null && hideIndex!='' ){
    $( '#sh_table').show();
}else{
    $( '#sh_table').hide();
}
$('#sh_table tr td span').each( function(i) {
    var text = $(this).text();
    $( this).find('input:checkbox' ).click(function(){
        var falg = $(this).attr('checked');
        if (falg =='checked' ||falg==true ) {
            change(1, text);
            var hideIndexVal = $('#hideIndex').val();
            if(hideIndexVal!=null && hideIndexVal!=''){
                var indexArray = hideIndexVal.split("," );
                $.grep(indexArray, function(val,key){
                    if(val==i){
                        indexArray.remove(key);
                    }
                });
            }
            $( '#hideIndex').val(indexArray.toString());
        } else{
            change(0, text);
            var colorArray=new Array();
            var hideIndexVal = $('#hideIndex').val();
            if(hideIndexVal!=null && hideIndexVal!=''){
                colorArray.push(hideIndexVal);
            }
            colorArray.push(i);
            $( '#hideIndex').val(colorArray.toString());
        }
    });
});
      
$('#sh_table tr td span').each( function(i) {
     var text = $(this).text();
//   var hideIndex = $('#hideIndex'). val();
//   var index = hideIndex.split(",");
//  判断服务器返回需要隐藏某些值
     $( this).find('input:checkbox' ).each(function(){
         if(hideIndex.indexOf(i)>=0){
             $( this).removeAttr('checked' );
         };
     });
          
     $( this).find('input:checkbox' ).each(function(){
         var falg = $(this).attr('checked');
         if (falg =='checked' ||falg==true ) {
             change(1, text);
         } else{
             change(0, text);
         };
     });
});



//删除
Array.prototype.remove = function (dx) { 
    if (isNaN(dx) || dx > this.length) { 
        return false ; 
    } 
    for ( var i = 0, n = 0; i < this.length; i++) { 
        if (this [i] != this[dx]) { 
            this[n++] = this [i]; 
        } 
    } 
    this.length -= 1; 
}; 

//隐藏列
function change(reg, text){
     var index;
     $("#changecolor tr").each( function(i){
           if(i==0){
              $( this).find('th' ).each(function(){
                    var text2 = $(this).text();
                    if(text2.indexOf(text)>=0){
                        index = $( this).index();
                   };
              });
          }
           if(reg==0){
              $( this).find("th:eq(" +index+")" ).hide();
              $( this).find("td:eq(" +index+")" ).hide();
          } else if (reg==1){
              $( this).find("th:eq(" +index+")" ).show();
              $( this).find("td:eq(" +index+")" ).show();
          }
          
     });
}

  • 28
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
layui-soul-table 是一款基于layui框架开发的用于展示数据的表格插件。要快速隐藏,可以通过以下步骤进行操作: 1. 首先,确保已加载layui和layui-soul-table的相关资源文件。可以在页面中引入layui和layui-soul-table的CSS和JS文件,例如: ```html <link rel="stylesheet" href="path/to/layui/css/layui.css"> <link rel="stylesheet" href="path/to/layui-soul-table/soulTable.css"> <script src="path/to/layui/layui.js"></script> <script src="path/to/layui-soul-table/soulTable.js"></script> ``` 2. 在HTML页面中,创建一个具有固定id的表格元素,例如: ```html <table id="demo" lay-filter="test"></table> ``` 3. 在JavaScript代码中,使用layui-soul-table的自定义参数来创建表格,并设置隐藏显示属性。例如: ```javascript layui.use(['table', 'soulTable'], function(){ var table = layui.table; var soulTable = layui.soulTable; table.render({ elem: '#demo', url: '/api/data', // 数据接口 cols: [[ {field:'id', title: 'ID'}, {field:'name', title: '名称'}, {field:'age', title: '年龄'}, // 其他 {field:'操作', title: '操作', toolbar: '#barDemo', width: 150} // 需要隐藏 ]], }); soulTable.on('filter(test)', function(data){ // 判断隐藏显示状态 var isHide = data.isHide; if(isHide){ $('#demo .layui-table-view .layui-table').find('[data-field="操作"]').hide(); }else{ $('#demo .layui-table-view .layui-table').find('[data-field="操作"]').show(); } }); }); ``` 通过以上步骤,就可以在 layui-soul-table 中快速隐藏指定的。具体实现是通过监听"filter(test)"事件,判断隐藏的状态,然后利用jQuery的hide()和show()方法来控制目标显示属性。使用这种方法,我们可以方便地实现快速隐藏功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值