当前位置:首页 > 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实现列表

js实现列表

使用 JavaScript 实现列表 JavaScript 提供了多种方式来实现列表功能,包括数组操作、DOM 元素动态生成等。以下是几种常见的实现方法: 使用数组存储列表数据 数组是 JavaSc…

js实现dh

js实现dh

JavaScript 实现 DH(Diffie-Hellman)密钥交换 Diffie-Hellman(DH)密钥交换是一种安全协议,允许双方在不安全的通信信道上建立一个共享密钥。以下是如何在 Jav…

js验证码的实现

js验证码的实现

验证码的基本实现原理 验证码(CAPTCHA)的核心目标是区分人类用户和自动化程序。JavaScript可用于生成或验证客户端验证码,但需注意纯前端验证可能被绕过,通常需结合后端验证。 纯前端验证码…

js 实现全屏

js 实现全屏

使用 requestFullscreen 方法 通过调用元素的 requestFullscreen 方法可以实现全屏。该方法兼容现代浏览器,但不同浏览器可能需要前缀。 const element =…

js 实现mvc

js 实现mvc

MVC 模式简介 MVC(Model-View-Controller)是一种软件设计模式,将应用程序分为三个核心组件:模型(Model)处理数据和业务逻辑,视图(View)负责展示数据,控制器(Con…

vue.js实现tab

vue.js实现tab

Vue.js 实现 Tab 切换功能 在 Vue.js 中实现 Tab 切换功能可以通过动态组件或条件渲染实现。以下是两种常见方法: 动态组件实现 通过 <component> 结合 v…