当前位置:首页 > JavaScript

js实现高亮

2026-03-02 05:10:46JavaScript

实现高亮的方法

使用原生JavaScript

通过操作DOM元素的style属性或类名实现高亮效果。以下是一个基础示例:

function highlightElement(elementId, color = 'yellow') {
  const element = document.getElementById(elementId);
  if (element) {
    element.style.backgroundColor = color;
  }
}

使用CSS类切换

定义高亮样式类,通过JavaScript动态添加/移除类名:

js实现高亮

.highlight {
  background-color: yellow;
  font-weight: bold;
}
function toggleHighlight(elementId) {
  const element = document.getElementById(elementId);
  if (element) {
    element.classList.toggle('highlight');
  }
}

文本范围高亮

对于文本节点中的特定内容,可使用RangeDocumentFragment

js实现高亮

function highlightText(text, containerId, highlightClass = 'highlight') {
  const container = document.getElementById(containerId);
  if (!container) return;

  const content = container.innerHTML;
  const regex = new RegExp(text, 'gi');
  const highlighted = content.replace(regex, 
    match => `<span class="${highlightClass}">${match}</span>`
  );
  container.innerHTML = highlighted;
}

使用第三方库

Mark.js等专门的高亮库提供更丰富的功能:

// 使用Mark.js库
const instance = new Mark(document.getElementById('content'));
instance.mark('keyword', {
  className: 'custom-highlight',
  accuracy: 'exactly'
});

动态搜索高亮

结合输入框实现实时高亮:

document.getElementById('search-input').addEventListener('input', (e) => {
  const keyword = e.target.value.trim();
  const marker = new Mark(document.querySelector('article'));
  marker.unmark().mark(keyword);
});

注意事项

  • 性能优化:频繁DOM操作时考虑使用文档片段或防抖技术
  • 可访问性:高亮颜色需满足WCAG对比度标准
  • 撤销功能:保留原始内容副本以便恢复
  • 嵌套处理:注意处理HTML标签嵌套时的文本匹配问题

以上方法可根据具体需求组合使用,CSS类切换方式推荐用于大多数场景,因其更易维护和扩展样式。

标签: js高亮
分享给朋友:

相关文章

js 实现vue

js 实现vue

Vue.js 的基本实现 在 JavaScript 中实现 Vue.js 的核心功能,可以通过数据绑定、响应式系统和虚拟 DOM 来实现。以下是实现 Vue.js 核心功能的简化版本。 数据响应式系…

js实现报表

js实现报表

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

js jquery

js jquery

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

js实现点击显示和隐藏

js实现点击显示和隐藏

实现点击显示和隐藏的JavaScript方法 使用classList.toggle切换类名 通过添加/移除CSS类控制元素的显示与隐藏,需提前在CSS中定义隐藏样式(如display: none)。…

vue实现js休眠

vue实现js休眠

实现 JavaScript 休眠的方法 在 Vue 中实现 JavaScript 休眠(延迟执行)可以通过以下方式实现。由于 JavaScript 本身没有内置的 sleep 函数,通常使用 Prom…

节流js实现

节流js实现

节流(Throttle)的实现原理 节流是一种限制函数执行频率的技术,确保函数在一定时间间隔内最多执行一次。适用于高频触发事件(如滚动、输入、窗口调整等)的场景。 基础实现方式 使用时间戳判断是否执…