
本文详细介绍了如何为纯javaScript实现的搜索过滤器添加“无匹配结果”提示功能。通过优化css隐藏方式(从`visibility: hidden`改为`display: none`)和基于过滤后可见元素数量的逻辑判断,确保在没有匹配项时显示提示信息,同时提升代码可读性和性能。
在构建交互式Web应用时,搜索过滤器是一个常见且实用的功能。然而,一个完整的搜索体验不仅包括显示匹配结果,还应在没有找到任何匹配项时提供友好的提示。本教程将指导您如何使用原生javascript(Vanilla JavaScript)实现一个高效且用户体验良好的搜索过滤器,特别关注如何添加“无匹配结果”的提示信息,并在此过程中探讨一些前端开发的最佳实践。
1. html结构:准备搜索界面与提示信息
首先,我们需要一个清晰的HTML结构来承载搜索输入框、待过滤的卡片列表以及用于显示无匹配结果的提示信息。
<section id="seccion-diez" class="section"> <h2 data-dark>Filtro de Búsqueda</h2> <!-- 搜索输入框 --> <input type="search" name="busqueda" placeholder="Buscar..." class="card-filter"> <!-- 无匹配结果提示信息,初始状态为隐藏 --> <p class="hidden" id="mensaje">Los resultados no coinciden con la busqueda</p> <!-- 包含待过滤卡片的容器 --> <article class="contenedor-cards"> <figure class="card"> @@##@@ <figcaption>Naturaleza</figcaption> </figure> <figure class="card"> @@##@@ <figcaption>Random</figcaption> </figure> <figure class="card"> @@##@@ <figcaption>Tecnología</figcaption> </figure> <figure class="card"> @@##@@ <figcaption>Persona</figcaption> </figure> <figure class="card"> @@##@@ <figcaption>Animal</figcaption> </figure> <figure class="card"> @@##@@ <figcaption>Arquitectura</figcaption> </figure> </article> </section>
关键点:
立即学习“Java免费学习笔记(深入)”;
- input[type=”search”]:用于用户输入搜索关键词。
-
:这是我们的提示信息元素。通过id=”mensaje”方便JavaScript访问,并使用class=”hidden”在初始状态下将其隐藏。
2. css样式:优化元素的隐藏方式
为了更有效地隐藏元素,我们推荐使用display: none而不是`visibility: