javascript - 如何使用javascript突出显示文本

标签 javascript highlighting

谁能帮我实现一个可以在网页上突出显示文本的 javascript 函数。 要求是 - 仅突出显示一次,而不是像我们在搜索时那样突出显示所有出现的文本。

最佳答案

您可以使用 jquery highlight effect .

但如果您对原始 javascript 代码感兴趣,请查看我得到的内容 只需将粘贴复制到 HTML 中,打开文件并单击“突出显示”- 这应该突出显示“fox”一词。在性能方面,我认为这适用于小文本和一次重复(如您指定的那样)

function highlight(text) {
  var inputText = document.getElementById("inputText");
  var innerHTML = inputText.innerHTML;
  var index = innerHTML.indexOf(text);
  if (index >= 0) { 
   innerHTML = innerHTML.substring(0,index) + "<span class='highlight'>" + innerHTML.substring(index,index+text.length) + "</span>" + innerHTML.substring(index + text.length);
   inputText.innerHTML = innerHTML;
  }
}
.highlight {
  background-color: yellow;
}
<button onclick="highlight('fox')">Highlight</button>

<div id="inputText">
  The fox went over the fence
</div>

编辑:

使用replace

我看到这个答案获得了一些人气,我想我可以补充一下。 您也可以轻松使用替换

"the fox jumped over the fence".replace(/fox/,"<span>fox</span>");

或者对于多次出现(与问题无关,但在评论中被问到),您只需添加 global关于替换正则表达式。

"the fox jumped over the other fox".replace(/fox/g,"<span>fox</span>");

将 HTML 替换为整个网页

要替换整个网页的 HTML,您应该引用 innerHTML文档正文。

document.body.innerHTML

关于javascript - 如何使用javascript突出显示文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56401394/

相关文章:

javascript - 无法读取未定义的 mongoose Nodejs 的属性 'id'

javascript - 如何使用 Bootstrap 3 DateTimePicker 获取事件源

javascript - 如何在 ReactJS 中指定 null prop 类型?

javascript - 高亮文本问题

visual-studio - 如何使Visual Studio 2010突出显示变量实例

javascript - 如何通过函数阻止激活 mousedown 事件?

javascript - threejs限制一行的长度

javascript - 如何在 TinyMCE 中突出显示给定的文本?

c# - 突出显示datagridview单元格中的部分文本