详解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 相关文章推荐
js focus不起作用的解决方法(主要是因为dom元素是否加载完成)
Nov 05 Javascript
javascript 运算数的求值顺序
Aug 23 Javascript
浅析jquery的作用与优势
Dec 02 Javascript
jQuery中:empty选择器用法实例
Dec 30 Javascript
js实现div层缓慢收缩与展开的方法
May 11 Javascript
javascript中的Function.prototye.bind
Jun 25 Javascript
js实现异步循环实现代码
Feb 16 Javascript
解决VUEX刷新的时候出现数据消失
Jul 03 Javascript
webpack教程之webpack.config.js配置文件
Jul 05 Javascript
JS操作时间 - UNIX时间戳的简单介绍(必看篇)
Aug 16 Javascript
mongoose设置unique不生效问题的解决及如何移除unique的限制
Nov 07 Javascript
vue中动态设置meta标签和title标签的方法
Jul 11 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执行批量mysql语句的解决方法
2013/05/02 PHP
PHP中IP地址与整型数字互相转换详解
2014/08/20 PHP
php实现比较全的数据库操作类
2015/06/18 PHP
Yii多表联合查询操作详解
2016/06/02 PHP
Laravel 微信小程序后端搭建步骤详解
2019/11/26 PHP
PHP实现基本留言板功能原理与步骤详解
2020/03/26 PHP
javascript的onchange事件与jQuery的change()方法比较
2009/09/28 Javascript
Script的加载方法小结
2011/01/12 Javascript
jQuery 瀑布流 绝对定位布局(二)(延迟AJAX加载图片)
2012/05/23 Javascript
jQuery基础框架浅入剖析
2012/12/27 Javascript
jquery延迟加载外部js实现代码
2013/01/11 Javascript
JavaScript实现Iterator模式实例分析
2015/06/09 Javascript
JS判断日期格式是否合法的简单实例
2016/07/11 Javascript
js绘制购物车抛物线动画
2020/11/18 Javascript
Vue封装的可编辑表格插件方法
2018/08/28 Javascript
浅谈关于iview表单验证的问题
2018/09/29 Javascript
vue ssr 实现方式(学习笔记)
2019/01/18 Javascript
小程序多图列表实现性能优化的方法步骤
2019/05/28 Javascript
详解express使用vue-router的history踩坑
2019/06/05 Javascript
JS通过识别id、value值对checkbox设置选中状态
2020/02/19 Javascript
Vuex中的Mutations的具体使用方法
2020/06/01 Javascript
javascript实现贪吃蛇小游戏
2020/07/28 Javascript
vue中echarts的用法及与elementui-select的协同绑定操作
2020/11/17 Vue.js
Python类的用法实例浅析
2015/05/27 Python
用Python实现KNN分类算法
2017/12/22 Python
python 缺失值处理的方法(Imputation)
2019/07/02 Python
Python使用matplotlib绘制三维参数曲线操作示例
2019/09/10 Python
用python-webdriver实现自动填表的示例代码
2021/01/13 Python
英国知名奢侈品包包品牌:Milli Millu
2016/12/22 全球购物
美国顶级品牌男士大码服装店:DXL
2017/08/30 全球购物
广告传媒专业应届生求职信
2014/03/01 职场文书
大学生励志演讲稿
2014/04/25 职场文书
党的群众路线对照检查材料思想汇报
2014/09/25 职场文书
农村党支部书记司法四风问题对照检查材料
2014/09/26 职场文书
2014年教师个人工作总结
2014/11/10 职场文书
iPhone13 Pro外观确定,升级4800万镜头,4月20日发新品
2021/04/15 数码科技