详解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 相关文章推荐
JavaScrip单线程引擎工作原理分析
Sep 04 Javascript
用jquery生成二级菜单的实例代码
Jun 24 Javascript
jQuery如何解决IE输入框不能输入的问题
Oct 08 Javascript
js原生Ajax的封装和原理详解
Mar 11 Javascript
详解如何将angular-ui的图片轮播组件封装成一个指令
May 09 Javascript
Vue官网todoMVC示例代码
Jan 29 Javascript
vue中父子组件注意事项,传值及slot应用技巧
May 09 Javascript
vue单页开发父子组件传值思路详解
May 18 Javascript
JavaScript创建对象方式总结【工厂模式、构造函数模式、原型模式等】
Dec 19 Javascript
vue中echarts图表大小适应窗口大小且不需要刷新案例
Jul 19 Javascript
vue实现标签云效果的示例
Nov 09 Javascript
基于Vue2实现移动端图片上传、压缩、拖拽排序、拖拽删除功能
Jan 05 Vue.js
详解基于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传输数据的代码
2007/11/13 PHP
Zend 输出产生XML解析错误
2009/03/03 PHP
PHP制作3D扇形统计图以及对图片进行缩放操作实例
2014/10/23 PHP
php中base_convert()进制数字转换函数实例
2014/11/20 PHP
php使用parse_str实现查询字符串解析到变量中的方法
2017/02/17 PHP
javascript下高性能字符串连接StringBuffer类
2010/08/16 Javascript
用jQuery模拟页面加载进度条的实现代码
2011/12/19 Javascript
主页面中的两个iframe实现鼠标拖动改变其大小
2013/04/16 Javascript
jquery鼠标滑过提示title具体实现代码
2013/08/06 Javascript
JS实现将人民币金额转换为大写的示例代码
2014/02/13 Javascript
javascript跨域的4种方法和原理详解
2014/04/08 Javascript
jQuery中animate()方法用法实例
2014/12/24 Javascript
jquery实现焦点图片随机切换效果的方法
2015/03/12 Javascript
如何防止INPUT按回车自动提交表单FORM
2016/12/06 Javascript
Websocket协议详解及简单实例代码
2016/12/12 Javascript
Angular.js中下拉框实现渲染html的方法
2017/06/18 Javascript
jQuery绑定事件方法及区别(bind,click,on,live,one)
2017/08/14 jQuery
vue debug 二种方法
2018/09/16 Javascript
200行HTML+JavaScript实现年会抽奖程序
2019/01/22 Javascript
小程序的上传文件接口的注意要点解析
2019/09/17 Javascript
[07:03]显微镜下的DOTA2第九期——430圣堂刺客杀戮秀
2014/06/20 DOTA
[01:06]欢迎来到上海,TI9
2018/08/26 DOTA
对python中不同模块(函数、类、变量)的调用详解
2019/07/16 Python
python 实现rolling和apply函数的向下取值操作
2020/06/08 Python
IE滤镜与CSS3效果(详细整理分享)
2013/01/25 HTML / CSS
CSS3色彩模式有哪些?CSS3 HSL色彩模式的定义
2016/04/26 HTML / CSS
突袭HTML5之Javascript API扩展5—其他扩展(应用缓存/服务端消息/桌面通知)
2013/01/31 HTML / CSS
Monnier Frères美国官网:法国知名奢侈品网站
2016/11/22 全球购物
商务英语本科生的自我评价分享
2013/11/15 职场文书
中学优秀班主任事迹材料
2014/05/01 职场文书
法制宣传教育方案
2014/05/09 职场文书
2014年最新党员对照检查材料汇总
2014/09/15 职场文书
顶岗实习协议书
2015/01/29 职场文书
工作转正自我鉴定范文
2019/06/21 职场文书
Spring IOC容器Bean的作用域及生命周期实例
2022/05/30 Java/Android
Spring中的@Transactional的工作原理
2022/06/05 Java/Android