需求场景:一个表格中有几十条数据,每一行代表一条,表格第一列是选择框,当点击某一行的选择框,选中此条数据,将此条数据的id存进存储数组,若点击取消选中状态,则将该条数据对应id从存储数组中删除。
方法一:
selection-change方法可以实时的获取当前被选中的数据。
方法二:
template代码
<el-table
:data="roleData"
style="margin:15px 0"
border
stripe
height="260"
@select="(selection,row)=>{selectHandle(selection,row)}"
>
<el-table-column type="selection"></el-table-column>
<el-table-column label="角色名称" width="120" prop="name"></el-table-column>
<el-table-column label="角色权限" prop="role"></el-table-column>
</el-table>
data中定义存储数组
data: [],
selectHandle方法
selectHandle(selection, row) {
if (this.data.includes(row.roleID)) {
this.data.splice(this.data.indexOf(row.roleID), 1)
} else {
this.data.push(row.roleID)
}
},
includes() 方法用来判断一个数组是否包含一个指定的值,根据情况,如果包含则返回 true,否则返回false。
splice() 方法通过删除或替换现有元素或者原地添加新的元素来修改数组,并以数组形式返回被修改的内容。此方法会改变原数组
indexOf()方法返回在数组中可以找到一个给定元素的第一个索引,如果不存在,则返回-1。