表格折叠展开

表格折叠展开其实质就是列的隐藏和显示,用JQuery很容易实现这个。

折叠展开的效果如下两图

源码如下

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
        <title>表格列显示隐藏</title>
        <script type="text/javascript" src="jquery-1.4.2.min.js"></script>
        <style type="text/css">
            body{ font-size:12px;}
            .iup{ background-color:#eee;}
            #table1{ background-color:#333;}
            #table1 td{ background-color:#fff;}
        </style>

        <script type="text/javascript">
     $(document).ready(function(){
           $("#showbtn").toggle(
            function () {
                $('.iup').hide();
                $(this).val('显示');
            },
            function () {
                $('.iup').show();
                $(this).val('隐藏');
            }
        );
      })
        
      </script>
    </head>
    <body align='center'>
<center>
    <input type='button' value='隐藏' id='showbtn' />
    <br/>
                <table id='table1' cellspacing='1'>
                 <tr>
                 <td width='150'>第一格</td>
                 <td width='250' class='iup'><input type='text'/></td>
                 <td width='150'>第三格</td>
                 </tr>
                  <tr>
                 <td width='150'>第一格</td>
                 <td width='250' class='iup'><input type='text'/></td>
                 <td width='150'>第三格</td>
                 </tr>
                  <tr>
                 <td width='150'>第一格</td>
                 <td width='250' class='iup'><input type='text'/></td>
                 <td width='150'>第三格</td>
                 </tr>
                  <tr>
                 <td width='150'>第一格</td>
                 <td width='250' class='iup'><input type='text'/></td>
                 <td width='150'>第三格</td>
                 </tr>
                  <tr>
                 <td width='150'>第一格</td>
                 <td width='250' class='iup'><input type='text'/></td>
                 <td width='150'>第三格</td>
                 </tr>
                  <tr>
                 <td width='150'>第一格</td>
                 <td width='250' class='iup'><input type='text'/></td>
                 <td width='150'>第三格</td>
                 </tr> <tr>
                 <td width='150'>第一格</td>
                 <td width='250' class='iup'><input type='text'/></td>
                 <td width='150'>第三格</td>
                 </tr>
               </table>
    
      </center>  
    </body>
</html>

转载于:https://www.cnblogs.com/haiconc/archive/2012/02/15/2353318.html

### 使用Element UI实现在Vue中的表格折叠展开 在 Vue 应用程序中利用 Element UI 的 `el-table` 组件来创建具有可扩展行特性的表格,可以通过配置特定属性使整个行成为触发器而不是默认仅限于右侧的小图标。为了达到这一目的,需自定义事件处理逻辑并调整样式。 对于希望点击任意位置都能触发展开/关闭操作的需求,主要依赖于监听行点击事件并通过编程方式控制对应行的状态变化。具体做法如下: #### HTML模板部分 ```html <template> <el-table :data="tableData" @row-click="handleRowClick"> <!-- 定义列 --> <el-table-column type="expand"> <template slot-scope="props"> <p>{{ props.row.description }}</p> <!-- 展示更多详情信息 --> </template> </el-table-column> <el-table-column label="日期" prop="date"></el-table-column> <el-table-column label="姓名" prop="name"></el-table-column> </el-table> </template> ``` 此段代码设置了当用户单击某一行时会调用 `handleRowClick()` 方法[^1]。 #### JavaScript方法实现 ```javascript export default { data() { return { tableData: [ { date: '2016-05-03', name: 'Tom', description: '描述...' }, // 更多数据项... ], expandedRows: [] // 存储当前已展开的行索引 }; }, methods: { handleRowClick(row) { const index = this.tableData.indexOf(row); if (this.expandedRows.includes(index)) { this.$refs.multipleTable.toggleRowExpansion(row, false); // 收起该行 this.expandedRows.splice(this.expandedRows.indexOf(index), 1); } else { this.$refs.multipleTable.toggleRowExpansion(row, true); // 展开该行 this.expandedRows.push(index); } } } } ``` 上述JavaScript实现了通过维护一个数组 `expandedRows` 来跟踪哪些行处于展开状态,并据此决定是应该收起还是展开指定行。 此外,还可以进一步优化用户体验,比如添加动画过渡效果、支持键盘导航等特性以增强交互性[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值