背景:

  一个后台管理系统,当管理员登录之后,会存在一个自己的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搭建的表格中,实现点击"定位"按钮后,屏幕滚动到对应行的位置的更多相关文章

  1. vue2.0 + Element UI + axios实现表格分页

    注:本文分页组件用原生 html + css 实现,element-ui里有专门的分页组件可以不用自己写,详情见另一篇博客:https://www.cnblogs.com/zdd2017/p/1115 ...

  2. bootstarp-table表格中嵌套多个BUTON按钮实现

    bootstarp-table表格中嵌套多个BUTON按钮实现   有时我们需要在bootsharp-table表格中嵌套多个按钮,来实现不同的功能,大概界面如下:   实现功能如下: 1:构建表格 ...

  3. layui表格点击排序按钮后,表格绑定事件失效解决方法

    最近项目使用layui较为频繁,遇到了一个麻烦的问题,网上搜索也没有看到同类型的问题,故此记下来. 需求是点击上图右侧表格中某一个单元格,会触发点击事件如下代码: $("table>t ...

  4. 点击提交按钮,屏幕会出现闪烁问题,element.style问题

    点击提交按钮,屏幕会出现闪烁问题 通过后台调试发现,在点击的按钮的时候会给body添加一个padding值,而且会出现怎么都修改不了的问题,会发现里面会有 element.style的值,这其实是一种 ...

  5. element ui table(表格)点击一行展开

    element ui是一个非常不错的vue的UI框架,element对table进行了封装,简化了vue对表格的渲染. element ui表格中有一个功能是展开行,在2.0版本官网例子中,只可以点击 ...

  6. element ui 的Notification通知如何加 a 标签和按钮,并弹多个

    前言:工作中需要在页面右下角弹出很多个提醒框,提醒框上有一个可点击的a标签,并有一个按钮,同时还需要一次性关闭所有的弹出框.转载请注明出处:https://www.cnblogs.com/yuxiao ...

  7. react 使用antd的在图片列表或表格中实现点击其他元素Checkbox选中功能

    antd官网上的Checkbox功能只能单独使用,在表格中加入Checkbox也只能点击Checkbox按钮才能实现选中或取消功能 如果我们要实在表格行中点击或在图片列表中点击图片就能实现选中或取消, ...

  8. vue2.0+Element UI 实现动态表单(点击按钮增删一排输入框)

    对于动态增减表单项,Element UI 官方文档表单那一节已经介绍得很清楚了,我之前没有看见,绕了很多弯路,这里针对点击按钮增删一排输入框的问题做一个总结. 效果图如下 存在一排必填的姓名与手机号, ...

  9. asp.mvc中的vue分页实例,分页组件无法重置reload,解决点击查询按钮后,分页不刷新的问题

    刚刚接触Vue.js,现在需要做一个查询功能,并且进行服务端分页.主要思路是在页面中注册一个分页组件,然后进行调用.代码如下 1.引用vue.js,具体去网上下载 2.在html的body中添加如下代 ...

随机推荐

  1. Python--数据类型与变量(列表、元祖、字典)

    今天我们来看Python中3种內建的数据结构:列表.元祖和字典 列表 定义:[]内以逗号分隔,按照索引,存放各种数据类型,每个位置代表一个元素特性:1.可存放多个值2.可修改指定索引位置对应的值,可变 ...

  2. ceph cache pool配置

    https://my.oschina.net/hanhanztj/blog/515410 0.引入 本文介绍如何配置cache pool tiering. cache pool的作用是提供可扩展的ca ...

  3. Jetson Nano系列教程0:初识Jetson Nano

    关于Jetson Nano Developer Kit Jetson nano搭载四核Cortex-A57 MPCore 处理器,采用128 核 Maxwell™  GPU.支持JetPack SDK ...

  4. SVN server 服务端修改端口号

    SVN server 服务端修改端口号 在实际使用中可能当安装svn server 服务后,发现与后续其他程序端口冲突, 1.打开svn server 管理界面->操作->properti ...

  5. MSSQLSERVER错误1

      错误信息 数据库日志记录 09/07/2017 16:10:31,登录,未知,Login failed for user 'NT AUTHORITY\SYSTEM'. 原因: 无法打开明确指定的数 ...

  6. ROS的使用

    1.输入roscore时出现错误:Unable to contact my own server at 修改: 在.bashrc文件中添加以下内容: export ROS_HOSTNAME=local ...

  7. 54、salesforce学习笔记(一)

    Decimal priceDecimal = -4.50; System.debug('小数的绝对值为:'+priceDecimal.abs()); System.debug('priceDecima ...

  8. 监督局部线性嵌入算法(SLLE算法)

    % SLLE ALGORITHM (using K nearest neighbors) % % [Y] = lle(X,K,dmax,a) % % X = data as D x N matrix ...

  9. 在VMware下创建windows2008虚拟机

    1.创建新的虚拟机 打开VMware软件,点击主页内创建新的虚拟机 2.进入新建虚拟机向导 点击典型,点击下一步 3.在下一步中单击稍后安装操作系统 点击下一步 4.选择操作系统类型 客户机操作系统选 ...

  10. mysql 个人博客应用的建表和相关查询

    一.建表 用户表tb_user create table if not exists tb_user( user_id int auto_increment, ) not null, user_pas ...