当前位置:首页 > 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实现轮播图

基本结构搭建 HTML部分需要包含轮播图容器、图片列表及导航按钮。结构示例如下: <div class="slider-container"> <div class="slid…

js轮播图实现原理

js轮播图实现原理

轮播图的基本原理 轮播图通过动态切换显示的内容(图片、文本等)实现视觉上的滑动效果。核心原理是利用CSS和JavaScript控制元素的显示与隐藏,或通过变换位置实现滑动动画。 实现方法一:…

js 实现分页

js 实现分页

实现分页的基本逻辑 分页功能通常需要后端返回数据总量或总页数,前端根据当前页码和每页条数截取对应数据。以下是一个基于JavaScript的简单分页实现方案: 前端分页实现 假设已有从后端获取的完整数…

js实现换肤

js实现换肤

使用CSS变量实现换肤 通过CSS变量可以轻松实现主题切换功能。CSS变量在根元素中定义,通过JavaScript动态修改这些变量值。 :root { --primary-color: #349…

js实现dh

js实现dh

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

js实现选题

js实现选题

实现选题功能的JavaScript方法 基础实现方案 使用数组存储选项,通过随机索引选取: const options = ['选项A', '选项B', '选项C', '选项D']; const r…