当前位置:首页 > 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);
});

跨页面全局搜索实现

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

// 保存搜索状态
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实现验证码

js实现验证码

实现验证码的JavaScript方法 生成随机验证码 使用Math.random()生成随机字符串,结合数字和字母: function generateCaptcha() { const ch…

js 实现vue模板

js 实现vue模板

实现 Vue 模板的 JavaScript 方法 通过原生 JavaScript 可以实现类似 Vue 的模板渲染功能,主要包括数据绑定、指令处理和模板解析。以下是核心实现思路: 数据绑定与响应式…

js实现vue

js实现vue

Vue.js 简介 Vue.js 是一个渐进式 JavaScript 框架,用于构建用户界面。其核心库专注于视图层,易于与其他库或现有项目整合。 实现 Vue.js 的基本步骤 安装 Vue.…

js实现pdf在线预览

js实现pdf在线预览

使用PDF.js实现PDF在线预览 PDF.js是由Mozilla开发的一个开源JavaScript库,可以在网页中直接渲染PDF文件。以下是实现PDF在线预览的步骤: 引入PDF.js库 在H…

js实现报表

js实现报表

使用JavaScript实现报表 在JavaScript中实现报表功能可以通过多种方式完成,常见的方法包括使用原生JavaScript、第三方库(如Chart.js、D3.js)或结合后端数据渲染。以…

jquery js

jquery js

jQuery 简介 jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画和 Ajax 交互。它兼容多种浏览器,提供易于使用的 API,使开发者能够更高…