当前位置:首页 > JavaScript

js实现高亮显示

2026-01-30 11:41:34JavaScript

实现高亮显示的方法

在JavaScript中实现高亮显示通常涉及操作DOM元素,修改文本样式或添加特定类。以下是几种常见方法:

使用HTML和CSS结合JavaScript

通过JavaScript动态添加高亮样式类,CSS定义高亮效果:

.highlight {
  background-color: yellow;
  color: black;
}
function highlightText(elementId, textToHighlight) {
  const element = document.getElementById(elementId);
  const content = element.innerHTML;
  const highlightedContent = content.replace(
    new RegExp(textToHighlight, 'gi'),
    match => `<span class="highlight">${match}</span>`
  );
  element.innerHTML = highlightedContent;
}

使用Range和Selection API

适用于精确控制选中文本范围的高亮:

function highlightSelection() {
  const selection = window.getSelection();
  if (selection.rangeCount > 0) {
    const range = selection.getRangeAt(0);
    const span = document.createElement('span');
    span.className = 'highlight';
    range.surroundContents(span);
  }
}

第三方库实现

使用专门的高亮库如Mark.js简化操作:

js实现高亮显示

<script src="https://cdn.jsdelivr.net/npm/mark.js@8.11.1/dist/mark.min.js"></script>
const instance = new Mark(document.querySelector('.content'));
instance.mark('keyword', {
  className: 'highlight'
});

注意事项

  • 直接操作innerHTML可能导致XSS漏洞,需对输入内容转义
  • 高亮大量文本时可能影响性能,建议使用文档片段(DocumentFragment)
  • 清除旧高亮时需遍历移除相关DOM节点或类名

清除高亮的方法

function removeHighlights() {
  const highlights = document.querySelectorAll('.highlight');
  highlights.forEach(highlight => {
    const parent = highlight.parentNode;
    parent.replaceChild(document.createTextNode(highlight.textContent), highlight);
  });
}

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

相关文章

js如何实现继承

js如何实现继承

原型链继承 通过将子类的原型指向父类的实例实现继承。子类实例能够访问父类原型上的属性和方法。 function Parent() { this.name = 'parent'; } Parent…

js分组实现

js分组实现

分组实现方法 在JavaScript中,可以通过多种方式实现数组或对象的分组操作。以下是几种常见的方法: 使用Array.prototype.reduce() 通过reduce方法可以轻松实现数组分…

js实现图表

js实现图表

在JavaScript中实现图表通常使用流行的图表库,以下是几种常见的方法和工具: 使用Chart.js Chart.js是一个简单灵活的库,适合快速生成响应式图表。安装方式包括CDN引入或npm安…

js实现游标

js实现游标

使用JavaScript实现游标 在JavaScript中,可以通过操作DOM元素的cursor样式属性来实现自定义游标效果。以下是几种常见的实现方法: 修改默认鼠标指针样式 通过CSS的curso…

js树实现

js树实现

树的基本概念 树是一种非线性的数据结构,由节点和边组成。每个节点包含一个值和指向子节点的引用。树的顶部节点称为根节点,没有子节点的节点称为叶节点。 树的实现方式 在JavaScript中,树可以通过…

js实现代码雨

js实现代码雨

实现代码雨效果 使用HTML5 Canvas和JavaScript可以轻松实现经典的代码雨效果。以下是完整的实现代码和说明: HTML结构 <!DOCTYPE html> <…