分享好友 最新动态首页 最新动态分类 切换频道
elements元素搜索 elementui搜索关键字高亮
2024-12-26 12:03


elements元素搜索 elementui搜索关键字高亮

angular.js、react.js、vue.js

现在前端主流的三大框架中,从17年开始又以vue最为火爆。而三大框架更多的偏向于js交互层面,而在ui层面里呢,饿了么外卖的那个element-ui是使用vue时组件覆盖面较为全面的了。

目前在用到<el-tree></el-tree>便签时,发现了原生并没有支持高亮检索词属性。而树形结构在查找东西时,对于不太熟悉的人来说确实不太友好。所以,就简单通过jquery简陋的做了个动态高亮显示检索词的功能。

使用前提:

<el-tree></el-tree>       :filter-node-method属性       filter()属性

整体思路和网上高亮显示检索词的是一样的

第一步:拿到检索关键字、并且拿到检索后显示的数据

第二步:动态写入html '<span style="color:red">' + val + </span>''

第三步:动态的清除html内容中的 '<span style="color:red">'和‘</span>’内容

 

其中其实比较麻烦的有两点: 一是如何获取到被过滤后的节点,二是修改html内容的时序问题

第一点,其实通过控制台的Elements选项卡中可以拿到。通过class属性可以看出来,其中的过滤是会将不符合添加的叶子节点加上 is-hidden的class 隐藏起来。 故通过

可拿到过滤节点的label内容

 

第二点,其实是代码的插入点  在检索时整个过程用到了三个方法

  1. vm.watch监听 input框值的变化
  2. 输入框的input事件(不能用change事件,因为change事件是在值发生变化且失去焦点的情况下),用来根据用户输入的值对节点树着色
  3. vm.$refs.节点树.filter(val)方法

默认执行顺序为:用户val==>@input事件==》watch监听(val:function() ==>vm.$refs.节点树ref.filter(val))

input框值发生变化,触发input事件,接着触发watch监听,然后在watch监听中,将拿到的val值传入vm.$refs.节点树.filter(val)方法循环遍历过滤节点树节点,最后渲染。但是这样的话,input里面的事件进先执行了,这时候过滤节点还没有渲染就拿不到,也就上不了色了。(但是,你可能会说,为什么不放到watch里面filter方法之后呢,我放了,但是确实不管用...  没有具体研究watch的机制,后面有时间的话会看一下)

于是,我们改变一下时序。通过在@input方法中,将方法体包在延时函数setTimeout()中。于是就变成了

val==》watch监听(清除颜色代码==》val:function() ==>vm.$refs.节点树ref.filter(val))==>@input事件(上色代码)

附两个方法代码参考,有更好的方案欢迎指教~~

最新文章
蚂蚁金服阳振坤:用10年时间打造一个产品
“如果大家当时能看见原来十年后OceanBase能长成这样,可能十年前OceanBase得到的支持会好很多。但是这种如果是不存在的,很多时候你要先证明自己。”根据工信部数据显示,1998年,中国软件企业5000家,市场规模325亿;到了2018年底,中国软
目前市面上哪种微型货车比较好呢?
今天找车网小编整理了目前市面上哪种微型货车比较好呢?相关内容,希望能帮助到大家,一起来看下吧。1、目前市面上哪种微型货车比较好呢?2、11月两厢车销量排行出炉,车型细分为:微型,小型,紧凑级3、微型轿车排行榜 1.五菱之光(推荐)
详细笔记:OpenAI 发布会上的关键信息(上)
本文来自微信公众号:AI 破壳儿,原文标题:《详细笔记:OpenAI 发布会上的关键信息(上)》OpenAI 正在进行一场为期 12 天的发布会“马拉松”,目前已经进行到第 7 天。发布会的形式比较简单:每天在 YouTube 放出视频,主要由团队一线成
这几个彩票优质公众号,让你中奖不再难!
在这个激动人心的时刻,彩票迷们是否渴望能第一时间获取到开奖结果呢?今天,小编为大家推荐几个彩票优质公众号,希望能帮助大家在未来的购彩中好运连连,期期爆中!关注这些公众号,您将能在第一时间获取到你关心的各类彩票开奖信息。无论
这电脑打英雄联盟开录制视频一卡一卡的有点掉帧关掉录制就不卡是怎么回事?以前录制都不卡的?
你的cpu是不是9750啊,我9750 2060笔记本,外接2k 不开录制就很流畅,开了录制就会卡,也不是卡的严重,但就是能看到卡帧,我在全网找办法。1、打开TGP后,进入英雄联盟游戏界面,在选择大区的页面,右上角勾选开启QT语音,然后在游戏主页
退本!kimi智能App是做任务诈骗软件!被骗提现不了怎么办
kimi智能App是做任务诈骗软件!被骗提现不了怎么办技术出嘿《溦:9836356》(一)希望阅读此文的读者能够及时采取措施以减少损失;请及时与团队联系提供解决方案(文章下面图片有咨询方式)若想追回损失资产,务必仔细阅读以下内容。【JFHHERYE
高德地图怎么在地图上设置自己店的位置-门店地图定位服务
高德地图是一款功能丰富的地图应用,它提供了详细的地图信息、实时的交通状况和的服务。这款地图应用适合各种使用场景,无论是城市出行、郊区探索还是驾车、骑行和步行,都能为用户提供可靠的导航指引。高德地图拥有庞大的地图数据,覆盖了
这家跨境独立站年入42.9亿元 引流用的什么招儿?
原创:派派粉来源:跨境派做跨境电商无非两个路子:一是在亚马逊、ebay、wish 等电商平台开店卖货;另一条则是搭建自己的网站,将商品放在自己的网站上销售。刚入行的跨境小白们起初会选择在大平台上开店卖货。大平台做的久了,会发现平台
超好用的视频界AI助手——NoteGPT
6.笔记与记忆卡生成 我可以根据自己的需要,创建个性化的笔记和学习卡片,这不仅加深了我对知识的理解和记忆,也为我的复习提供了极大的方便。 二、AI助手还有哪些功能 NoteGPT作为一个视频界的AI助手,还有以下功
用AI一键生成超逼真美女写真,快来体验超火的AI神器!
在首页找到“生成照片”选项,进入后你会看到多种美女写真模板可供选择。你可以根据个人的喜好,选择想要的模板,模特风格多样化,能满足不同用户的需求。步骤三:输入描述 选择好模板后,系统会提示输入相应的文本描述。描述可以尽量详细
相关文章
推荐文章
发表评论
0评