在使用element-ui搭建的表格中,实现点击"定位"按钮后,屏幕滚动到对应行的位置
背景:
一个后台管理系统,当管理员登录之后,会存在一个自己的id值,
在一个表格中,当点击"定位"按钮后,屏幕滚动到拥有管理员id的这一行,并且给设置一个高亮的背景
相关知识点:
查找数组中是否存在某个字段
获取父节点
获取全部子节点
动态添加id
屏幕滚动到指定位置
......

1.定义事件
<el-button size="mini" type="info" @click="ClickTableLocation">定位</el-button>
//定位按钮
ClickTableLocation(){ }
2.在表格上定义ref,通过ref拿到表格的对象信息

ClickTableLocation(){
//使用refs获取到整个表格对象
let refTab = this.$refs.TableId
console.log("使用refs获取到的整个表格为:")
//拿到表格的data数据
let refTabInsideData = refTab.data
}
3.在表格的数组里面定义一条数据,代表着这个当前登录的管理员的身份id

4.循环遍历这个数组,找到拥有这个字段的对象下标
//定位按钮
ClickTableLocation(){ //使用refs获取到整个表格对象
let refTab = this.$refs.TableId
console.log("使用refs获取到的整个表格为:") //拿到表格的data数据
let refTabInsideData = refTab.data //遍历这个数组
for(let i = ; i < refTabInsideData.length; i++){
//判断对象中是否存在"userNameId"这个属性
if(refTabInsideData[i].hasOwnProperty('userNameId')){
//获取到存在 "userNameId"这个属性的对象下标
let tableIdLocation = refTabInsideData.map(item => item.userNameId).indexOf() }
5.给表格定义一个id,并通过这个id获取到表格的某行,跟上面拥有 "userNsmeId"这个字段的数据对应


"定位"按钮的点击事件全部代码为:
//定位按钮
ClickTableLocation(){ //使用refs获取到整个表格对象
let refTab = this.$refs.TableId
console.log("使用refs获取到的整个表格为:") //拿到表格的data数据
let refTabInsideData = refTab.data //遍历这个数组
for(let i = ; i < refTabInsideData.length; i++){
//判断对象中是否存在"userNameId"这个属性
if(refTabInsideData[i].hasOwnProperty('userNameId')){
//获取到存在 "userNameId"这个属性的对象下标
let tableIdLocation = refTabInsideData.map(item => item.userNameId).indexOf() //获取到表格的节点,获取到表格的所有子节点
let myTableId = document.getElementById("myTableId").childNodes //拿到第3个表格内容结构的所有子节点 class = "el-table__body-wrapper is-scrolling-none"
let myTableIdChildNo3 = myTableId[].childNodes //在拿到所有子节点中的第一个
let myTableIdChildNo3ChildNo1 = myTableIdChildNo3[].childNodes //再拿到结构为<tboby></tboby>的节点
let tbobyChildNo2 = myTableIdChildNo3ChildNo1[] //获取到结构为<tboby></tboby>的子节点
let kk = tbobyChildNo2.childNodes //把遍历处出来有 "userNameId:666" 这个字段的下标赋值给当前表格行
let kkll = kk[tableIdLocation] //给这行表格动态的添加一个id,实现背景颜色的突出显示
kkll.setAttribute('id','table_td_bg') //当点击"定位"按钮之后,实现屏幕滚动到这个id的位置,并且在屏幕的中间
let element = document.getElementById("table_td_bg");
element.scrollIntoView({block:"center"}) }
}
},
这里获取节点的操作写的比较繁琐,应该有更好的方式,等后面了解了再来修改,期待看到的大神能指导一下....
在使用element-ui搭建的表格中,实现点击"定位"按钮后,屏幕滚动到对应行的位置的更多相关文章
- vue2.0 + Element UI + axios实现表格分页
注:本文分页组件用原生 html + css 实现,element-ui里有专门的分页组件可以不用自己写,详情见另一篇博客:https://www.cnblogs.com/zdd2017/p/1115 ...
- bootstarp-table表格中嵌套多个BUTON按钮实现
bootstarp-table表格中嵌套多个BUTON按钮实现 有时我们需要在bootsharp-table表格中嵌套多个按钮,来实现不同的功能,大概界面如下: 实现功能如下: 1:构建表格 ...
- layui表格点击排序按钮后,表格绑定事件失效解决方法
最近项目使用layui较为频繁,遇到了一个麻烦的问题,网上搜索也没有看到同类型的问题,故此记下来. 需求是点击上图右侧表格中某一个单元格,会触发点击事件如下代码: $("table>t ...
- 点击提交按钮,屏幕会出现闪烁问题,element.style问题
点击提交按钮,屏幕会出现闪烁问题 通过后台调试发现,在点击的按钮的时候会给body添加一个padding值,而且会出现怎么都修改不了的问题,会发现里面会有 element.style的值,这其实是一种 ...
- element ui table(表格)点击一行展开
element ui是一个非常不错的vue的UI框架,element对table进行了封装,简化了vue对表格的渲染. element ui表格中有一个功能是展开行,在2.0版本官网例子中,只可以点击 ...
- element ui 的Notification通知如何加 a 标签和按钮,并弹多个
前言:工作中需要在页面右下角弹出很多个提醒框,提醒框上有一个可点击的a标签,并有一个按钮,同时还需要一次性关闭所有的弹出框.转载请注明出处:https://www.cnblogs.com/yuxiao ...
- react 使用antd的在图片列表或表格中实现点击其他元素Checkbox选中功能
antd官网上的Checkbox功能只能单独使用,在表格中加入Checkbox也只能点击Checkbox按钮才能实现选中或取消功能 如果我们要实在表格行中点击或在图片列表中点击图片就能实现选中或取消, ...
- vue2.0+Element UI 实现动态表单(点击按钮增删一排输入框)
对于动态增减表单项,Element UI 官方文档表单那一节已经介绍得很清楚了,我之前没有看见,绕了很多弯路,这里针对点击按钮增删一排输入框的问题做一个总结. 效果图如下 存在一排必填的姓名与手机号, ...
- asp.mvc中的vue分页实例,分页组件无法重置reload,解决点击查询按钮后,分页不刷新的问题
刚刚接触Vue.js,现在需要做一个查询功能,并且进行服务端分页.主要思路是在页面中注册一个分页组件,然后进行调用.代码如下 1.引用vue.js,具体去网上下载 2.在html的body中添加如下代 ...
随机推荐
- spring data jpa sql
CREATE TABLE cst_customer ( cust_id bigint(32) NOT NULL AUTO_INCREMENT COMMENT '客户编号(主键)', cust_name ...
- Spring 容器中bean的加载过程
bean 的加载过程大致可以分为以下几个步骤: 1.获取配置的资源文件 2.对获取到的xml资源文件进行解析 3.获取包装资源 4.解析处理包装之后的资源 5.加载 提取bean 并进行注册(添加到b ...
- eclipse run error:g++ not found in Path
网上有人说: 在eclipse下 windows-->Preference-->C/C++-->Build-->Setting然后选择Discovery标签,将里面的内容全部R ...
- CDQ分治&整体二分学习个人小结
目录 小结 CDQ分治 二维LIS 第一道裸题 bzoj1176 Mokia bzoj3262 陌上花开 bzoj 1790 矩形藏宝地 hdu5126四维偏序 P3157 [CQOI2011]动态逆 ...
- python中的pow()函数解释
转载自:https://blog.csdn.net/wuxiaobingandbob/article/details/47776209 Python中pow(),里面可以有两个或三个参数,它们的意义是 ...
- java == 和equals()
== == 是运算符 :可以使用在基本数据类型变量和引用数据类型变量当中 : 如果比较的是基本数据类型变量,比较两个变量保存的数据是否相等(不一定类型相同) 如果比较的是引用数据类型变量, 比较两个对 ...
- Mac-VScode
1) 安装 xcode. 打开App Store,搜索xcode,进行下载安装. 2)执行命令: xcode-select --install 3)安装VS Code https://code.vis ...
- JavaScript中 函数的创建和调用
基础概念:定义函数的方式 一般定义函数有两种方式: 1:函数的声明 2:函数表达式 参考资料:https://blog.csdn.net/xixiruyiruyi/article/de ...
- python学习笔记:操作数据库
1.下载安装模块 第一种:cmd下:执行命令下载安装:pip3 install pymysql 第二种:IDE下pycharm python环境路径下添加模块 2.连接数据库 import pymys ...
- Python集成开发环境Pycharm+Git+Gitee(码云)
********************************************************************* 本文主要介绍集成开发环境的配置过程,方便多人协作办公.代码版 ...