在使用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中添加如下代 ...
随机推荐
- 集训队8月2日(BFS)
看书情况:109~124页 刷题数:6 今天把上两次比赛的该补的题都补了,补题有博客,还写了两道书上例题的博客. 书上例题 BFS思维https://www.cnblogs.com/246247839 ...
- Android开发时包名、签名、渠道和版本号的易坑点(转)
本文中总结一下 Android 开发中容易被忽视的一些注意事项吧: 一.谨慎选择包名 包名 (Package Name) 就相当于一款应用在户口本上登记的名字,是系统用来区分不同应用的字段.重复的包名 ...
- Redis入门很简单之二【常见操作命令】
Redis入门很简单之二[常见操作命令] 博客分类: NoSQL/Redis/MongoDB redisnosql缓存 Redis提供了丰富的命令,允许我们连接客户端对其进行直接操作.这里简单介绍一 ...
- line-height继承
父元素设置ling-height;子元素继承父元素的line-height 1.ling-height:固定像素 body{ font-size:20px; line-height: 24px; } ...
- cs224d 作业 problem set3 (一) 实现Recursive Nerual Net Work 递归神经网络
1.Recursive Nerual Networks能够更好地体现每个词与词之间语法上的联系这里我们选取的损失函数仍然是交叉熵函数 2.整个网络的结构如下图所示: 每个参数的更新时的梯队值如何计算, ...
- Oracle Database的安装与卸载
目录 目录 软件环境 Oracle Database 就业前景 安装Oracle Server RDBMS体系结构 卸载Oracle Serveer 软件环境 系统 Windows 8.1 软件 Or ...
- CTF隐写——越光宝盒
0x题目 原题来自于实验吧:http://www.shiyanbar.com/ctf/1992 一句话,和一个PNG图片. 0x解题 1.下载图片以后,发现打不开. 首先想到的就是文件头可能被修改了, ...
- 2019牛客多校第六场J-Upgrading Technology(枚举+单调队列)
Upgrading Technology 题目传送门 解题思路 对于这题,我们可以枚举一个k从0~m,表示当前我们把所有技能最少升到了k级,且至少有一个为k级. 此时我们刚好获得了前k个d[]的收益, ...
- PHP实现RSA2加密
PHP实现RSA2加密 1. 需要开启php的 php_openssl扩展 <?php /* * RSA2签名 * @param array 请求的参数 * @param string 私钥 * ...
- PHP CURL 模拟form表单上传遇到的小坑
1:引用的时候 $parans ['img']=new \CURLFile($param); 传入的文件 在PHP版本5.5以上记得new CURLFile 不然会上传不成功 /** * http p ...