如何使用 Javascript 或 jQuery 突出显示页面上所有出现的单词?

2023-11-23

我有一个关键字列表,然后是页面上包含这些关键字的句子列表。我想让关键字列表可点击。当用户单击关键字时,该关键字的所有出现都会在句子中突出显示。

我如何使用 jQuery 或原始 Javascript 来做到这一点?

我能想到的唯一方法是用一个包含自身作为类名的类来包装页面上的每个单词。然后制作关键字按钮,将突出显示类别添加到匹配的单词类别中。这可能有效,但似乎有很多不必要的代码注入。

关键词列表

<button>this</button>
<button>example</button>

句子

<span class='word_this'>This</span> <span class='word_is'>is</span> <span class='word_an'>an</span> <span class='word_example'>example</span>.

最好的方法可能是使用.highlight类来突出显示单词,并将匹配项包装在带有该突出显示类的范围内。这是一个基本示例:

var sentences = document.querySelector('#sentences');
var keywords = document.querySelector('#keywords');

keywords.addEventListener('click', function(event){
    var target = event.target;
    var text = sentences.textContent;
    var regex = new RegExp('('+target.textContent+')', 'ig');
    text = text.replace(regex, '<span class="highlight">$1</span>');
    sentences.innerHTML = text;
}, false);
.highlight {
    background-color: yellow;
}
<div id="keywords">
    <span>This</span> 
    <span>Example</span>.
</div>
<div id="sentences">
    This is an example. An example is shown in this. Here is another example.
</div>

Fiddle: https://jsfiddle.net/xukay3hf/3/

更新了 Fiddle,使现有单词突出显示:https://jsfiddle.net/avpLn7bf/3/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 Javascript 或 jQuery 突出显示页面上所有出现的单词? 的相关文章

随机推荐

  • 如何使用 HQL 将“null”放入列中?

    如何构建有效的HQL字符串 相当于 UPDATE 表 SET 字段 null WHERE 您的意思是批量 HQL 更新吗 尝试这个 UPDATE myEntity e SET e myProperty null WHERE 您还可以使用上述
  • 在 iPhone 上存储用户名和密码的最佳做法是什么?

    是否有在 iPhone 上存储用户名和密码的最佳实践方法 我正在寻找明显安全的东西 但也会在应用程序更新之间保留信息 使用苹果钥匙串 NSString getPasswordForUsername NSString username and
  • “显示完整站点”按钮可绕过 CSS 媒体查询

    我在我的网站上使用 CSS 媒体查询 以在较小的设备上切换到更垂直的布局 这工作得很好 但我想在网站上添加一个按钮 其中包含 显示桌面版本 之类的内容 我想让这个按钮 或链接 无论什么 强制或改变媒体查询评估 以便它们评估好像屏幕宽度比实际
  • Jenkins 在 Mercurial 提交后构建

    我已经在这个项目上工作了大约一周 我已经在网上搜索了两天 没有任何明确的解释 对于学校作业 我们需要使用以下程序设置构建服务器 Maven 作为我们的构建工具 Mercurial 作为我们的版本控制系统 Java JRE javac 和 j
  • 愤怒的小鸟喜欢滚动菜单

    当您启动 愤怒的小鸟 并点击 开始 时 您会看到一个水平滚动的菜单 其中有一条居中的图像 单击后您就可以开始游戏等等 我想知道如何制作一个与此类似的菜单 它可以横向滚动 水平 并显示可点击的图像 提前致谢 我认为你可以通过水平滚动视图 Ho
  • 无法在函数内访问 jQuery $.get 中的全局变量

    下面是我遇到问题的一些代码 基本上 我将一个空数组定义为全局变量 var playlist 然后尝试在 jQuery get 调用中向其中添加元素 根据我在互联网上读到的内容 我应该能够做到这一点 以下代码给出错误 无法调用未定义的方法 p
  • 混合类型类和类型族时出现问题

    这段代码编译得很好 LANGUAGE MultiParamTypeClasses FunctionalDependencies FlexibleInstances UndecidableInstances FlexibleContexts
  • 如何使用@Autowired像工厂模式一样动态注入实现

    我对 Sprint 相当陌生 我的应用程序使用 Spring 3 x 和 roo1 1 1 我有一个接口的多个实现 该接口将被 Autowired 到其他不同的类中 我只能在运行时决定采用哪种实现 这应该通过类似工厂模式来实现 public
  • 如何为登录用户更改 ionic 中的侧菜单

    我想在用户登录时更改侧面菜单的内容 示例 1 用户未登录 当用户未登录时 会显示此侧面菜单 示例 2 用户已登录 正如您所看到的 有几个额外的菜单项 这些仅在用户登录时显示 在我的控制器中 http get http 127 0 0 1 8
  • 使用 IntelliJ IDEA 生成 JavaDoc 中的图像[重复]

    这个问题在这里已经有答案了 我正在尝试将图像包含在我的 JavaDoc 中 我跟随文档并将图像存储在doc files在包目录中 我的 javadoc 看起来像 This is class desctiprion Image p img s
  • 获取当前用户上下文

    我在从不同位置 C 应用程序 Web 服务 运行 powershellscript 时遇到问题 我认为这是一个用户上下文问题 所以现在我试图找出 powershell 脚本在哪个用户上下文下运行 是否有可能记录 powershell 脚本的
  • 从另一个视图类重新加载集合视图数据

    我的视图中有两个容器 最上面有一个集合视图 当从下面的容器点击按钮时 我想通过按钮更新我的集合视图 我的按钮还更改了我的集合视图使用的数组的值 我以为 didSet 可以完成这项工作 但不幸的是没有成功 Top class TopViewC
  • ASP.NET MVC5 未针对请求的 URL 配置 Web 服务器,并且服务器上未启用目录浏览

    我在从 MVC5 应用程序加载页面时遇到问题 我安装并使用了这个软件 Windows 10 Visual Studio 企业版 2015 微软 IIS 10 0 Express MVC 5 与实体框架 到目前为止 一切正常 我能够显示该网站
  • JSON.parse意外字符错误

    我收到此错误 JSON parse 意外字符 当我在萤火虫中运行此语句时 JSON parse balance 0 count 0 time 1323973673061 firstname howard userId 5383 locali
  • 为简单的 WCF 服务启用基本身份验证?

    我有一个非常简单的 WCF Web 服务 客户在自己的 IIS 上托管该服务 客户有自己的客户端 他们一直在测试环境中对其进行测试 一切都工作正常 直到他们禁用匿名身份验证并启用基本身份验证 一旦他们这样做了 他们就开始出现错误 The a
  • Firestore 时间戳获取 null

    我在我的 android 项目中使用 firestore 一切正常 但是昨天从文档快照获取时间戳值时出现了问题 if documentChange getType DocumentChange Type ADDED Map
  • 自动生成命令以在工作区中重现对象[重复]

    这个问题在这里已经有答案了 假设工作区中已经定义了一个对象 a lt round rnorm 10 1 0 1 1 1 1 0 2 1 1 1 如何以编程方式生成一个命令来创建a 例如 我想使用a在我的工作区中生成以下字符串codeToCr
  • 防止双重表单提交[重复]

    这个问题在这里已经有答案了 精确复制 如何在服务器端处理多个提交 当前的一般任务 防止在多用户基于 Web 的应用程序中提交双重表单 想想金融交易 我有两种可以同时使用的方法 JavaScript disabling of button 缺
  • 是否可以在 JavaScript 中包含 HTML 代码?

    我有一个基本问题 我可以在 JS 中包含 HTML 代码吗 和document write 这是我的 HTML 代码 li a href class menulink text a li li a href class menulink t
  • 如何使用 Javascript 或 jQuery 突出显示页面上所有出现的单词?

    我有一个关键字列表 然后是页面上包含这些关键字的句子列表 我想让关键字列表可点击 当用户单击关键字时 该关键字的所有出现都会在句子中突出显示 我如何使用 jQuery 或原始 Javascript 来做到这一点 我能想到的唯一方法是用一个包