使用js简单实现table的合计功能,很实用。

 现在很多的项目中都需要对table进行合计的功能。在这里分享下我的方法。

 页面是使用layUI简单制作的table,贴下jsp页面

 <table class="layui-table" id="testTable">
    <colgroup>
      <col width="150">
      <col width="150">
      <col width="200">
      <col>
    </colgroup>
    <thead>
      <tr>
        <th>单位名称</th>
        <th>部门1人数</th>
        <th>部门2人数</th>
        <th>部门3人数</th>
      </tr> 
    </thead>
    <tbody>
      <tr>
        <td>单位1</td>
        <td>13</td>
        <td>12</td>
        <td>34</td>
      </tr>
      <tr>
        <td>单位2</td>
        <td>34</td>
        <td>12</td>
        <td>34</td>
      </tr>
      <tr>
        <td>单位3</td>
        <td>34</td>
        <td>12</td>
        <td>0</td>
      </tr>
      <tr>
        <td>单位4</td>
        <td>23</td>
        <td>45</td>
        <td>23</td>
      </tr>
      <tr>
        <td>单位5</td>
        <td>3</td>
        <td>45</td>
        <td>0 </td>
      </tr>
      <tr>
        <td>单位5</td>
        <td>3</td>
        <td>45</td>
        <td>0 </td>
      </tr>
      <tr class="count">
        
      </tr>
    </tbody>
  </table>

页面最后添加了一个空行用来做页面的合计功能,使用js来计算行列。

$(function(){
	var table=document.getElementById("testTable");//获取table对象
	var rows=table.rows;//获取行对象
	var cells=table.cells;//获取列对象
	var colums = table.rows[0].cells.length;//获取列数	
	$(".count").empty();//每次加载时清空最后一列,防止二次加载数据时出现多行合计
	$(".count").append("<td>合计</td>");
	//这里从列开始遍历,得到的就是每一列的数据
	//如果从行开始遍历,得到的就是每行的数据
	for(var j=1;j<colums;j++){
		var sum=0;
		for(var i=1;i<rows.length-1;i++){//从i=1第二行开始去掉表头,rows.length-1结束,去掉合计行
			var a =parseInt(rows[i].cells[j].innerHTML.trim());//获取每一列的值
				sum=sum+a; //计算
		}
		$(".count").append("<td>"+sum+"</td>");//给最后一行添加计算结果列
	}
 });

 原创,转载请注明出处

 

  • 10
    点赞
  • 50
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 8
    评论
要在 Vue 中使用 `el-table` 添加搜索框并实现简单搜索功能,你可以按照以下步骤进行操作: 1. 首先,确保你已经安装并引入了 Element UI 库,以便使用 `el-table` 和其他组件。 2. 在 Vue 组件中,定义一个数据属性 `searchText` 用于存储搜索框中的文本输入。 3. 在 `el-table` 中的表头部分,添加一个额外的列用于放置搜索框组件。 4. 在搜索框组件中,使用 `v-model` 绑定 `searchText` 属性,以便实时获取搜索框中的文本输入。 5. 在表格的数据源中,使用计算属性或方法来过滤符合搜索条件的数据。 6. 在搜索框的事件处理程序中,调用过滤数据的方法或更新计算属性,以实现数据的动态过滤。 下面是一个示例代码,演示了如何在 Vue 中添加搜索框并实现简单搜索功能: ```vue <template> <div> <el-input v-model="searchText" placeholder="输入关键字搜索"></el-input> <el-table :data="filteredData"> <el-table-column label="姓名" prop="name"></el-table-column> <el-table-column label="年龄" prop="age"></el-table-column> <el-table-column label="邮箱" prop="email"></el-table-column> </el-table> </div> </template> <script> export default { data() { return { searchText: '', tableData: [ { name: '张三', age: 25, email: 'zhangsan@example.com' }, { name: '李四', age: 30, email: 'lisi@example.com' }, { name: '王五', age: 28, email: 'wangwu@example.com' } ] }; }, computed: { filteredData() { if (!this.searchText) { return this.tableData; } const searchText = this.searchText.toLowerCase(); return this.tableData.filter(item => { return ( item.name.toLowerCase().includes(searchText) || item.email.toLowerCase().includes(searchText) ); }); } } }; </script> ``` 在上述代码中,我们在 `el-input` 组件中使用 `v-model` 绑定了 `searchText` 属性,用于实时获取搜索框中的文本输入。然后,我们在 `el-table` 的表头部分添加了一个额外的列,用于放置搜索框组件。 在数据源中,我们使用了一个名为 `tableData` 的数组来存储表格的数据。我们使用计算属性 `filteredData` 来过滤符合搜索条件的数据。如果 `searchText` 为空,则返回所有数据;否则,我们将搜索框中的文本转换为小写并与每一项的姓名和邮箱进行比较,返回包含搜索文本的数据项。 这样,当你在搜索框中输入关键字时,表格将根据输入进行动态过滤,并只显示符合条件的数据项。 请注意,在实际项目中,你可能需要从后端获取数据并进行搜索,这里的示例代码只是一个简单的演示。你可以根据自己的需求进行修改和扩展。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qq_39098505

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值