⭐先看案例,想要点击勾选el-table的复选框后获取那一行的id或者name或者其他字段都是可以的举一反三。包括我已经把勾选后的数据重新展示在页面上了。下面为主要步骤。
⭐第一步: 渲染完表格 给表格加上事件 @selection-change="handleSelectionChange"
<el-table ref="multipleTable" :data="tableDataInfo" tooltip-effect="dark" style="width: 100%" @selection-change="handleSelectionChange" > <el-table-column type="selection" width="85"> </el-table-column> <el-table-column prop="number" label="订单编号" width="220"> </el-table-column> <el-table-column prop="type" label="产品类型" width="220"> </el-table-column> <el-table-column prop="createTime" label="创建时间" width="220"> </el-table-column> <el-table-column prop="expirationTime" label="到期时间" width="220"> </el-table-column> <el-table-column prop="paymentAmount" label="支付金额" width="220"> </el-table-column> </el-table>
复制
⭐第二步:在methods 中打印获取当前所勾选的列表行数据啦console.log(this.$refs.multipleTable.selection);
//或者第二种方法
handleSelectionChange(e) { // console.log(e) // 打印出来的数据 就是勾选获取的勾选那一行的数据 // console.log(this.$refs.multipleTable.selection); /// 遍历了 勾选获取的那一行数据 然后 赋值给我自己定义的yilist这个数组了 this.yilist = e.map((item) => item.id); // 现在yilist 这个数组 就是由我勾选每一行的id组成的数组了 这个数组里全是勾选那行的id console.log(this.yilist, 777); },
复制
⭐ 关于ref:vue也有自带的获取DOM的方法,那就是ref。它不仅可以获取DOM元素还可以获取组件。本文对ref不做过多的解释。感兴趣的同学们可以深入了解一下哈~
官网对 ref 的解释:ref 被用来给元素或子组件注册引用信息。引用信息将会注册在父组件的 $ refs 对象上。如果在普通的 DOM 元素上使用,引用指向的就是DOM 元素;如果用在子组件上,引用就指向组件实例。
⭐全部完整代码如下
<template> <div class="main"> <!-- 小标题 --> <div class="maintitle"> <div class="titlehengxian"></div> <div class="titletext">我的订单</div> </div> <div class="mytable"> <div class="" style="width:100%;font-size: 18px;margin-bottom: 20px;margin-top: 20px;"> 勾选的id展示:{{yilist}} </div> <el-table ref="multipleTable" :data="tableDataInfo" tooltip-effect="dark" style="width: 100%" @selection-change="handleSelectionChange" > <el-table-column type="selection" width="85"> </el-table-column> <el-table-column prop="number" label="订单编号" width="220"> </el-table-column> <el-table-column prop="type" label="产品类型" width="220"> </el-table-column> <el-table-column prop="createTime" label="创建时间" width="220"> </el-table-column> <el-table-column prop="expirationTime" label="到期时间" width="220"> </el-table-column> <el-table-column prop="paymentAmount" label="支付金额" width="220"> </el-table-column> </el-table> </div> </div> </template> <script> import { searchOrder } from "@/api/person/invoice"; export default { components: {}, data() { return { // 表格数据 tableDataInfo: [], //自己定义的新数组 yilist: [], // 表格数据 searchForm: { pageNum: 0, pageSize: 10, }, total: 0, }; }, created() { this.init(); }, methods: { init() { this.getInfoList(); }, handleSelectionChange() { //打印出来的数据 就是勾选获取的勾选那一行的数据 console.log(this.$refs.multipleTable.selection); /// 遍历了 勾选获取的那一行数据 然后 赋值给我自己定义的yilist这个数组了 this.yilist = this.$refs.multipleTable.selection.map((item) => item.id); // 现在yilist 这个数组 就是由我勾选每一行的id组成的数组了 这个数组里全是勾选那行的id console.log(this.yilist, 777); }, /* 表格列表 */ async getInfoList() { const result = await searchOrder(this.searchForm); if (result.code === 200) { const data = result.data; console.log(data); this.tableDataInfo = data.list; this.total = data.total; } }, }, }; </script> <style scoped> </style>
复制
⭐我还把获取到的数据通过map方法遍历出id组成新的数组yilist:[ ]。(当然也可以举一反三遍历其他的字段)
温馨提示如果以上方法尝试过了,问题还没解决的朋友,如果您不嫌弃,欢迎评论或者私信联系,我会第一时间与您取得联系,和您一起探讨解决问题!绝不收取任何咨询费用!
关键词搜索优化(与文章无关):
el-table勾选复选框如何获取列表当前行id,如何勾选获取表格当前行的index,name,如何勾选获取表格当前行的数据,VUE获取element组件中table表格的id,element中table单元格获取id,elementUI表格如何获取当前选择的id? 【ElementUI】获取表格选中行的id数组,element中获取选中行元素的IDel-table收集列表中被选中复选框数据信息