详解element-ui表格中勾选checkbox,高亮当前行


Posted in Javascript onSeptember 02, 2019

我们在做后台管理系统的时候经常需要操作表格,这里我们要实现的一个功能就是,勾选复选框,高亮显示当前行,也就是当前行样式改变。这是一个非常常见的使用场景,官网给我们提供了一个带Checkbox的table表格,但是并没有给出上述使用案例,解决办法有很多,我简单总结下我自己的实现过程,希望能帮助到有同样需求的小伙伴。

详解element-ui表格中勾选checkbox,高亮当前行

勾选表格中当前项时会触发selection-change事件,在<el-table>中绑定handleSelectionChange方法。

<el-table
     @selection-change="handleSelectionChange"
    >

编写handleSelectionChange方法,实现思路就是根据勾选当前行的下标,改变当前样式。但是element table表格中没有获取勾选后当前行index的方法,这里主要通过两个forEach遍历实现。

在data中定义tableData的时候一定要设置id属性,因为这里我们是通过id的对比来获取当前行的下标。

tableData: [{
     id:0,
     date: '2016-05-03',
     name: '王小虎',
     address: '上海市普陀区金沙江路 1518 弄'
    }

下列方法打印出来的i就是你要获取的勾选行的索引值,我们在data中定义一个空数组,专门用来存储选中项的下标,方便使用。

handleSelectionChange(val) {
    var arr = [];
    val.forEach((val, index) => {


this.tableData.forEach((v, i) => {



 // id 是每一行的数据id
      if(val.id == v.id){
       // console.log(i);
       arr.push(i)
      }
     })
    })  
    this.multipleSelection = arr;
   }

获取到下标之后就需要改变样式,给<el-table>标签绑定修改当前行样式的方法rowStyle

<el-table
     @selection-change="handleSelectionChange"
     :row-class-name="rowStyle"
    >

编写rowStyle方法,思路是循环便利multipleSelection数组,取出存储的下标,与当前行下标做对比,如果相同则返回rowStyle,改变当前行的样式。

这里需要注意一个问题:

forEach中return无效!我们希望达到某一条件时,跳出循环,代码终止,使用forEach进行遍历是无法实现的。

原因:forEach()无法在所有元素都传递给调用的函数之前终止遍历!

this.multipleSelection.forEach((v)=>{
     if(rowIndex === v){
      return 'rowStyle'
     }
    })

解决方法:使用for替换forEach

rowStyle({row, rowIndex}){
    let arr = this.multipleSelection;
    for(let i = 0; i < arr.length; i++){
     if(rowIndex === arr[i]){
      return 'rowStyle'
     }
    } 
   }

在style中定义选中行的样式

</style>
 .rowStyle{
  background-color:red!important;
 }
</style>

另外如果想更改鼠标移入的hover样式,要注意需要在td上修改,因为事件是添加在td身上的,在tr上修改无效。

.el-table{
   width: 1163px; 
   margin: 0 auto;
   .el-table__body{
    tr:hover>td{
     background-color:rgba(238,250,249,1)!important;
    }
   }
  }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
IE下使用cloneNode注意事项分享
Nov 22 Javascript
jquery多行滚动/向左或向上滚动/响应鼠标实现思路及代码
Jan 23 Javascript
jQuery动画特效实例教程
Aug 29 Javascript
JavaScript基础语法、dom操作树及document对象
Dec 02 Javascript
node.js中的http.request.end方法使用说明
Dec 10 Javascript
JS中使用apply方法通过不同数量的参数调用函数的方法
May 31 Javascript
js表单登陆验证示例
Oct 19 Javascript
学习vue.js条件渲染
Dec 03 Javascript
mui上拉加载功能实例详解
Apr 13 Javascript
Javascript实现信息滚动效果
May 18 Javascript
Vue中的数据监听和数据交互案例解析
Jul 12 Javascript
前端使用crypto.js进行加密的函数代码
Aug 16 Javascript
详解基于Vue的支持数据双向绑定的select组件
Sep 02 #Javascript
layui当点击文本框时弹出选择框,显示选择内容的例子
Sep 02 #Javascript
Vue内部渲染视图的方法
Sep 02 #Javascript
一步一步实现Vue的响应式(对象观测)
Sep 02 #Javascript
Layui多选只有最后一个值的解决方法
Sep 02 #Javascript
解决layui checkbox 提交多个值的问题
Sep 02 #Javascript
LayUI动态设置checkbox不显示的解决方法
Sep 02 #Javascript
You might like
PHP与javascript对多项选择的处理
2006/10/09 PHP
PHP实现分布式memcache设置web集群session同步的方法
2018/04/10 PHP
jquery中的sortable排序之后的保存状态的解决方法
2010/01/28 Javascript
js几个验证函数代码
2010/03/25 Javascript
jQuery中live()方法用法实例
2015/01/19 Javascript
Javascript aop(面向切面编程)之around(环绕)分析
2015/05/01 Javascript
jQuery封装的tab选项卡插件分享
2015/06/16 Javascript
javascript实现tab切换特效
2015/11/12 Javascript
跟我学习javascript的异步脚本加载
2015/11/20 Javascript
Bootstrap媒体对象的实现
2016/05/01 Javascript
Ionic快速安装教程
2016/06/03 Javascript
javascirpt实现2个iframe之间传值的方法
2016/06/30 Javascript
Vue.js开发环境搭建
2016/11/10 Javascript
vue 里面使用axios 和封装的示例代码
2017/09/01 Javascript
Python写入数据到MP3文件中的方法
2015/07/10 Python
Python中使用OpenCV库来进行简单的气象学遥感影像计算
2016/02/19 Python
Python 的描述符 descriptor详解
2016/02/27 Python
Python 类与元类的深度挖掘 I【经验】
2016/05/06 Python
Python3 适合初学者学习的银行账户登录系统实例
2017/08/08 Python
python如何派生内置不可变类型并修改实例化行为
2018/03/21 Python
python计算阶乘和的方法(1!+2!+3!+...+n!)
2019/02/01 Python
Python匿名函数及应用示例
2019/04/09 Python
对Python3之方法的覆盖与super函数详解
2019/06/26 Python
python下载的库包存放路径
2020/07/27 Python
浅谈Python xlwings 读取Excel文件的正确姿势
2021/02/26 Python
HTML5之SVG 2D入门4—笔画与填充
2013/01/30 HTML / CSS
html5 figure和figcaption的使用方法
2018/09/10 HTML / CSS
Dockers鞋官网:Dockers Shoes
2018/11/13 全球购物
ETO男装官方网店:ETO Jeans
2019/02/28 全球购物
关于工资低的辞职信
2014/01/14 职场文书
《难忘的泼水节》教学反思
2014/02/27 职场文书
陈欧的广告词
2014/03/18 职场文书
镇创先争优活动总结
2014/08/28 职场文书
个园导游词
2015/02/04 职场文书
2016年政治理论学习心得体会
2016/01/25 职场文书
导游词之苏州盘门景区
2019/11/12 职场文书