详解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 相关文章推荐
javascript实现仿银行密码输入框效果的代码
Dec 13 Javascript
js确定对象类型方法
Mar 30 Javascript
JavaScript 盒模型 尺寸深入理解
Dec 31 Javascript
js实现获取div坐标的方法
Nov 16 Javascript
javascript函数命名的三种方式及区别介绍
Mar 22 Javascript
获取JavaScript异步函数的返回值
Dec 21 Javascript
vue-cli+webpack在生成的项目中使用bootstrap实例代码
May 26 Javascript
详解Angular2响应式表单
Jun 14 Javascript
es7学习教程之fetch解决异步嵌套问题的方法示例
Jul 21 Javascript
BootStrap下的弹出框加载select2框架失败的解决方法
Aug 31 Javascript
详解angular笔记路由之angular-router
Sep 12 Javascript
layui表格checkbox选择全选样式及功能的实例
Mar 07 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
Ping服务的php实现方法,让网站快速被收录
2012/02/04 PHP
php类的扩展和继承用法实例
2015/06/20 PHP
PHP常用工具类大全附全部代码下载
2015/12/07 PHP
静态html文件执行php语句的方法(推荐)
2016/11/21 PHP
Javascript技巧之不要用for in语句对数组进行遍历
2010/10/20 Javascript
对setInterval在火狐和chrome切换标签产生奇怪的效果之探索,与解决方案!
2011/10/29 Javascript
jquery prop的使用介绍及与attr的区别
2013/12/19 Javascript
JS获取select-option-text_value的方法
2013/12/26 Javascript
jquery $.trim()方法使用介绍
2014/05/21 Javascript
JS实现的RGB网页颜色在线取色器完整实例
2016/12/21 Javascript
干货!教大家如何选择Vue和React
2017/03/13 Javascript
细说webpack源码之compile流程-rules参数处理技巧(2)
2017/12/26 Javascript
JS面向对象编程基础篇(一) 对象和构造函数实例详解
2020/03/03 Javascript
Python中使用dom模块生成XML文件示例
2015/04/05 Python
浅谈python抛出异常、自定义异常, 传递异常
2016/06/20 Python
Python自动化运维和部署项目工具Fabric使用实例
2016/09/18 Python
Python中如何获取类属性的列表
2016/12/26 Python
python函数式编程学习之yield表达式形式详解
2018/03/25 Python
解决python3 Pycharm上连接数据库时报错的问题
2018/12/03 Python
pycharm设置鼠标悬停查看方法设置
2019/07/29 Python
python实现代码统计程序
2019/09/19 Python
python实发邮件实例详解
2019/11/11 Python
Python-Flask:动态创建表的示例详解
2019/11/22 Python
如何使用python记录室友的抖音在线时间
2020/06/29 Python
python中lower函数实现方法及用法讲解
2020/12/23 Python
详解前端HTML5几种存储方式的总结
2016/12/27 HTML / CSS
海蓝之谜(LA MER)澳大利亚官方商城:全球高端奢华护肤品牌
2017/10/27 全球购物
POS解决方案:MUNBYN(热敏打印机、条形码扫描仪)
2020/06/09 全球购物
"引用"与多态的关系
2013/02/01 面试题
建筑设计所实习生自我鉴定
2013/09/25 职场文书
个人找工作的自我评价
2013/10/17 职场文书
刑事代理授权委托书
2014/09/17 职场文书
2014年幼儿园园长工作总结
2014/12/17 职场文书
2015年中秋放假通知范文
2015/08/18 职场文书
分析并发编程之LongAdder原理
2021/06/29 Java/Android
python数字图像处理实现图像的形变与缩放
2022/06/28 Python