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

使用 window.location 跳转 通过修改 window.location.href 实现页面跳转,这是最常用的方法。 window.location.href = 'https://…

js实现动画

js实现动画

使用 CSS 动画与 JavaScript 控制 通过 JavaScript 动态添加或移除 CSS 类来触发动画。CSS 定义关键帧(@keyframes),JavaScript 通过 classL…

js实现复制功能

js实现复制功能

使用 document.execCommand 方法 这种方法适用于较旧的浏览器,但在现代浏览器中可能被逐步淘汰。通过创建一个临时的 textarea 元素,将文本内容放入其中,然后执行复制命令。…

vue实现高亮

vue实现高亮

Vue 实现文本高亮的方法 在 Vue 中实现文本高亮可以通过多种方式完成,以下是几种常见的方法: 方法一:使用 v-html 和字符串替换 通过字符串替换将匹配的关键词包裹在 <span&…

js实现图表

js实现图表

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

js实现抽奖

js实现抽奖

实现抽奖功能的基本思路 抽奖功能的核心是随机选择奖项并展示结果。可以通过数组存储奖项,利用随机数生成索引,最后通过动画增强用户体验。 准备奖项数据 定义一个数组存储奖项信息,每个奖项可以包含名称、图…