通过简单的页面搜索功能增强用户在信息丰富的页面上的体验。忘记数据库查询或JSON解析 - 此方法直接搜索网页的渲染文本内容。当存在浏览器内置搜索时,这种方法提供了精致的过滤体验,突出了相关结果,以便于导航。
这是一个现场演示,展示了功能:[链接到演示]
我在一个现实世界中使用了这项技术: https://www.php.cn/link/2a60eed050799970d61abad679da7aeae8f 。
利用JavaScript
本教程采用JavaScript来管理所有交互式元素。具体而言,它将:
- 确定可搜索的内容。
- 监视用户在搜索字段中的输入。
- 过滤可搜索元素的
innerText
。 - 检查文本是否包含搜索词(
.includes()
是此处的键)。 - 基于搜索术语匹配的切换元素可见性。
基本的HTML结构
让我们假设一个常见问题页面,其中每个问题都作为标题和内容的“卡”提出:
<h1 id="常见问题解答部分">常见问题解答部分</h1> <div> <h3 id="我们是谁">我们是谁</h3> <p>它不仅幸存了五个世纪,而且还幸存下来,而且跨越了电子排版,基本上保持不变。它得到了普及</p> </div> <div> <h3 id="我们做什么">我们做什么</h3> <p>它不仅幸存了五个世纪,而且还幸存下来,而且跨越了电子排版,基本上保持不变。它得到了普及</p> </div> <div> <h3 id="为什么在这里工作">为什么在这里工作</h3> <p>它不仅幸存了五个世纪,而且还幸存下来,而且跨越了电子排版,基本上保持不变。它得到了普及</p> </div> <div> <h3 id="了解更多">了解更多</h3> <p>想进一步了解我们吗?</p> </div>
对于有许多问题的页面,此结构有效地扩展了。
为了启用互动性,我们将使用单个CSS规则:
。 }
该类将动态添加或删除以控制元素可见性。我们还将添加一个搜索输入:
<label for="searchbox">搜索:</label> <input type="text" id="searchbox">
核心JavaScript功能
以下JavaScript代码管理搜索功能:
函数livesearch(){ 让卡= document.queryselectorall('。cards'); //选择卡元素 令searchQuery = document.getElementById(“ searchbox”)。值; //获取搜索词 cards.foreach(card => { 令textContent = card.innertext.tolowercase(); //归一化为小写 令searchTermlower = searchQuery.tolowercase(); //归一化为小写 if(textContent.includes(搜索termlower)){ card.classlist.remove('is Hinded'); //显示匹配卡 } 别的 { card.classlist.add('is Hinded'); //隐藏非匹配卡 } }); } //添加少量延迟以防止功能过多的调用 令TypingTimer; 令TypeInterval = 500; //半秒 令searchInput = document.getElementById('searchbox'); SEARCHINPUT.ADDEVENTLISTENER('keyup',()=> { ClearTimeOut(typingTimer); typingTimer = settimeout(livesearch,typeinterval); });
该代码通过卡迭代,检查搜索术语包含(不敏感),并相应地更新可见性。延迟阻止了快速击键的性能问题。
扩展搜索功能:模糊匹配
要合并模糊匹配(即使不明确显示相关的关键字,也要搜索相关的关键字),请考虑使用隐藏的元素或属性:
方法1:隐藏元素
添加包含关键字的隐藏元素:
<div> <h3 id="我们是谁">我们是谁</h3> <p>...</p> <span class="hidden-keywords">秘密,公司,历史</span> </div>
修改liveSearch
包括包含textContent
而不是innerText
以访问隐藏的关键字。
方法2:属性
使用诸如alt
类的属性进行图像:
<img src="/static/imghwm/default1.png" data-src="https://img.php.cn/upload/article/000/000/000/174227042512545.jpg?x-oss-process=image/resize,p_40" class="lazy" alt="使用香草JavaScript的页面内过滤搜索">
调整liveSearch
使用getAttribute('alt')
搜索属性值。
重要说明
此搜索方法仅限于DOM中已经呈现的内容。它不适合搜索外部数据库或大型数据集。
结论
通过香草JavaScript实施的简单而有效的页面搜索解决方案可以显着提高具有广泛内容的网页的可用性。适应并扩展此技术以适合各种应用,从常见问题页面到图像画廊。
以上是使用香草JavaScript的页面内过滤搜索的详细内容。更多信息请关注PHP中文网其他相关文章!

具有CSS的自定义光标很棒,但是我们可以将JavaScript提升到一个新的水平。使用JavaScript,我们可以在光标状态之间过渡,将动态文本放置在光标中,应用复杂的动画并应用过滤器。

互动CSS动画和元素相互启动的元素在2025年似乎更合理。虽然不需要在CSS中实施乒乓球,但CSS的灵活性和力量的增加,可以怀疑Lee&Aver Lee&Aver Lee有一天将是一场

有关利用CSS背景滤波器属性来样式用户界面的提示和技巧。您将学习如何在多个元素之间进行背景过滤器,并将它们与其他CSS图形效果集成在一起以创建精心设计的设计。

好吧,事实证明,SVG的内置动画功能从未按计划进行弃用。当然,CSS和JavaScript具有承载负载的能力,但是很高兴知道Smil并没有像以前那样死在水中

是的,让#039;跳上文字包装:Safari Technology Preview In Pretty Landing!但是请注意,它与在铬浏览器中的工作方式不同。

此CSS-tricks更新了,重点介绍了年鉴,最近的播客出现,新的CSS计数器指南以及增加了几位新作者,这些新作者贡献了有价值的内容。

在大多数情况下,人们展示了@Apply的@Apply功能,其中包括Tailwind的单个property实用程序之一(会改变单个CSS声明)。当以这种方式展示时,@Apply听起来似乎很有希望。如此明显


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

SublimeText3 Linux新版
SublimeText3 Linux最新版

VSCode Windows 64位 下载
微软推出的免费、功能强大的一款IDE编辑器

MinGW - 适用于 Windows 的极简 GNU
这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

Dreamweaver Mac版
视觉化网页开发工具

DVWA
Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中