当前位置:首页 > JavaScript

js实现全局搜索

2026-02-03 00:57:19JavaScript

实现全局搜索的基本思路

全局搜索功能通常涉及遍历页面内容或数据集,匹配用户输入的关键词并高亮显示结果。以下是基于JavaScript的实现方法。

监听搜索输入事件

通过事件监听获取用户输入的搜索词,触发搜索逻辑。使用input事件实现实时搜索。

const searchInput = document.getElementById('search-input');
searchInput.addEventListener('input', (e) => {
  const searchTerm = e.target.value.trim();
  performSearch(searchTerm);
});

遍历并匹配内容

遍历目标DOM元素或数据集合,检查是否包含搜索词。使用正则表达式实现不区分大小写的匹配。

function performSearch(term) {
  const elements = document.querySelectorAll('.searchable');
  const regex = new RegExp(term, 'gi');

  elements.forEach(element => {
    const text = element.textContent;
    const hasMatch = regex.test(text);
    element.classList.toggle('highlight', hasMatch);
  });
}

高亮显示匹配结果

通过CSS类控制高亮样式,动态添加或移除类名。

.highlight {
  background-color: yellow;
  font-weight: bold;
}

处理动态加载内容

对于异步加载的内容,需在数据渲染后重新执行搜索逻辑。

function loadDynamicContent() {
  fetch('/api/data').then(res => res.json()).then(data => {
    renderContent(data);
    performSearch(lastSearchTerm); // 重新应用当前搜索词
  });
}

优化搜索性能

对于大型数据集,采用防抖技术减少频繁搜索带来的性能问题。

let debounceTimer;
searchInput.addEventListener('input', (e) => {
  clearTimeout(debounceTimer);
  debounceTimer = setTimeout(() => {
    performSearch(e.target.value.trim());
  }, 300);
});

跨页面全局搜索实现

若需实现跨页面搜索,需结合本地存储或服务端保存搜索状态。

js实现全局搜索

// 保存搜索状态
function setSearchState(term) {
  localStorage.setItem('globalSearchTerm', term);
}

// 页面加载时恢复搜索
window.addEventListener('load', () => {
  const savedTerm = localStorage.getItem('globalSearchTerm');
  if (savedTerm) {
    searchInput.value = savedTerm;
    performSearch(savedTerm);
  }
});

标签: 全局js
分享给朋友:

相关文章

js实现动画

js实现动画

使用 CSS 动画与 JavaScript 控制 通过 JavaScript 动态添加或移除 CSS 类来触发动画。CSS 定义关键帧(@keyframes),JavaScript 通过 classL…

js实现vr

js实现vr

使用WebXR API实现VR体验 WebXR是浏览器中实现VR和AR体验的标准API,它取代了早期的WebVR。现代浏览器如Chrome、Edge和Firefox已支持WebXR。 // 初始化W…

js进度条实现

js进度条实现

使用HTML和CSS创建基础结构 在HTML中创建一个容器元素用于显示进度条,通常使用<div>元素。CSS用于设置进度条的样式,包括宽度、高度、颜色和圆角等属性。 <div cl…

js实现菜单

js实现菜单

实现基本HTML结构 使用HTML创建菜单的基本框架,通常包含<ul>和<li>元素。示例结构如下: <ul id="menu"> <li><…

实现继承js

实现继承js

实现继承的方式 在JavaScript中,实现继承可以通过多种方式完成,每种方式都有其优缺点。以下是几种常见的实现继承的方法: 原型链继承 原型链继承是最基本的继承方式,通过将子类的原型指向父类的实…

js 实现拖拽

js 实现拖拽

实现拖拽的基本步骤 在JavaScript中实现拖拽功能需要监听几个关键事件:mousedown、mousemove和mouseup。以下是实现的基本逻辑。 监听目标元素的mousedown事件,记…