当前位置: 首页 > 面试题库 >

如何使用JavaScript突出显示文本

黄鸣
2023-03-14
问题内容

有人可以通过可以在网页上突出显示文本的JavaScript函数来帮助我。要求是-仅突出显示一次,而不是像我们在搜索情况下那样突出显示所有出现的文本。


问题答案:

您可以使用jquery 突出显示效果。

但是,如果您对原始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

我看到这个答案越来越受欢迎,我想我可以补充一下。您也可以轻松使用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



 类似资料:
  • 问题内容: 我正在尝试突出显示与查询匹配的文本,但是我不知道如何使标记显示为HTML而不是文本。 当前输出: Java 脚本 所需的输出: Java 脚本 问题答案: 这是我简单的twoliner辅助方法: 它返回一个跨度,其中所请求的零件以标签突出显示。如果需要,可以简单地将其修改为使用其他标签。 更新: 为避免唯一键丢失警告,这是一个基于跨度并为匹配的零件设置fontWeight样式的解决方案

  • 问题内容: 对于充当按钮的anchors (例如,“堆栈溢出”页面顶部的“ 问题”,“ 标签”,“ 用户 ”等)或选项卡,是否存在CSS标准方法来禁用突出显示效果(如果用户不小心选择了文本)? 我意识到可以使用JavaScript来完成此操作,并且经过一番搜寻后得出了仅Mozilla -moz-user-select选项。 是否有使用CSS来实现此目标的符合标准的方法,如果没有,“最佳实践”方法是

  • 问题内容: 我可以高亮显示一些文本,使其从一个值开始,然后从另一个值结束,如下所示,但颜色为黄色吗? “” JTextPane 高亮显示 文本“” 谢谢。 问题答案: 通常,有几种可能性,具体取决于您对“突出显示”的真正含义:-) 通过在文档级别更改任意文本部分的样式属性来突出显示,例如 通过textPane级别上的荧光笔突出显示:

  • 问题内容: 我使用鼠标在html页面(在firefox中打开)上选择一些文本,并使用javascript函数创建/获取与所选文本相对应的rangeobject。 现在我要突出显示rangeobject下的所有文本。 好吧,这仅在rangeobject(起点和终点)位于同一textnode时有效,然后突出显示相应的文本。 但是,如果range对象覆盖多个文本节点,则它不能正常工作,它仅突出显示第一个

  • 我正在使用 django 模板生成 JSON 文件,如下所示: 如何为JSON文件添加django模板支持以启用自动完成?

  • 问题内容: 这更多是一个假设性的问题,我正在为正在计划的项目集思广益,并且很好奇是否有人知道任何API或方法可以在任何窗口上立即获取突出显示的文本,例如从浏览器或文字处理器。它还可能有一个只有在按下时才能读取的键盘命令(类似于CTRL + C,将所选文本添加到剪贴板) 我们将非常感谢您对此有什么API的任何了解。 问题答案: 您可以使用JNA 在前台窗口上实际模拟(复制操作),然后读取剪贴板中的内