用JS让文章内容指定的关键字加亮 是这样的.. 现在有这些关键字:美容,生活,购物当在文章里头出现这些关键字,就把它加亮显示.. 文章是生成静态页面的,而这些关键字是能随时更新的,所以我想用JS来实现…不知道怎样来实现这样的功能啊?特此求助 代码如下:[removed]function highlight(key) { var key = key.split(‘|’); for (var i=0; i<key.length; i++) {  var rng = document.body.createTextRange();  while (rng. 在网页开发中,有时我们需要对文章中的特定关键字进行高亮显示,以便用户更容易发现和理解。这在搜索结果展示、文章阅读或者数据分析等场景中非常常见。本文将介绍如何使用JavaScript来实现这样的功能,主要围绕提供的代码进行解析和扩展。 让我们分析给出的JavaScript函数`highlight(key)`。这个函数的主要目的是接收一个包含多个关键字的字符串,然后遍历整个文档,找到这些关键字并将其高亮显示。`key`参数是以竖线(`|`)分隔的关键词列表。 ```javascript function highlight(key) { var key = key.split('|'); // 将关键词字符串分割成数组 ``` 在这里,`split('|')`方法被用来将传入的字符串按照分隔符`|`切割成一个数组,例如`['美容', '生活', '购物']`。 接着,我们使用`for`循环遍历这个关键词数组: ```javascript for (var i = 0; i < key.length; i++) { var rng = document.body.createTextRange(); while (rng.findText(key[i])) { // rng.pasteHTML(rng.text.fontcolor('red')); rng.pasteHTML(''); } } ``` 在循环内部,我们创建了一个`TextRange`对象`rng`,它代表文档中的一段文本。`findText(key[i])`方法用于查找当前关键词`key[i]`在文档中的出现位置。如果找到,就会进入`while`循环,将找到的关键字替换为高亮显示的HTML元素。 原代码中注释掉的部分`rng.pasteHTML(rng.text.fontcolor('red'));`原本会将找到的关键字改为红色,但这里被替换为一个带有边框的红色`div`,并包裹在一个`a`标签内,这样不仅可以高亮显示,还可以为用户提供可点击的链接(尽管链接地址设为了`#`,即当前页面)。 ```javascript rng.pasteHTML(''); ``` 这段代码将替换掉找到的关键字,并为其添加样式和属性。`title`属性提供了关键词的工具提示,`display:inline`确保高亮部分保持在文本流中,而不会破坏布局。 调用`highlight`函数时,你需要提供一个包含所有关键字的字符串,如`highlight('文章|关键|功能')`。 然而,需要注意的是,上述代码仅适用于IE浏览器,因为它使用了`TextRange`对象,这是Internet Explorer特有的。对于其他浏览器,如Firefox、Chrome、Safari等,可以使用`document.querySelectorAll`或`NodeIterator`结合正则表达式来实现类似功能。 例如,我们可以使用`querySelectorAll`配合`innerText`属性和正则表达式来替换文本: ```javascript function highlightModern(key) { const keys = key.split('|'); const regex = new RegExp(keys.join('|'), 'gi'); const elements = document.querySelectorAll('body *'); // 获取所有元素 for (const element of elements) { if (element.nodeType === Node.TEXT_NODE) { const text = element.textContent; const replacedText = text.replace(regex, function (match) { return '' + match + ''; }); element.textContent = replacedText; } } } // 添加CSS样式 document.head.insertAdjacentHTML('beforeend', ` `); highlightModern('文章|关键|功能'); ``` 这段代码首先创建了一个正则表达式来匹配所有的关键词,然后遍历所有页面元素,将匹配到的关键字替换为带有`highlight`类的`span`标签。添加一个CSS样式,使高亮背景颜色为黄色。 总结来说,JavaScript的高亮显示功能可以通过多种方法实现,具体取决于目标浏览器和需求。在处理静态页面且关键词可能变化的情况下,动态使用JavaScript来实现关键词高亮是一种可行的解决方案。
2025-06-03 17:38:53 25KB js代码
1
【旅运微信小程序模板js代码前台前端H5页面源码】是一个专为旅游行业设计的微信小程序开发模板,包含了完整的JavaScript(js)代码和前端页面源码,适用于创建功能丰富的移动应用。此模板旨在帮助开发者快速搭建具有专业旅游服务特色的微信小程序,包括但不限于景点展示、行程规划、在线预订等功能。 在微信小程序的开发中,JavaScript是核心编程语言,负责处理逻辑和数据交互。源码中的js文件通常包含了以下关键部分: 1. **App.js**: 这是小程序的全局配置文件,定义了小程序的启动逻辑和全局变量。在这里,开发者可以初始化数据、设置页面路由以及处理全局事件。 2. **app.json**: 用于配置小程序的整体信息,如页面路径、界面样式、权限请求等。通过修改app.json,开发者可以定制小程序的启动页、导航栏颜色、图标等外观元素。 3. **pages** 文件夹:存放各个页面的组件和逻辑。每个页面通常由对应的js、json、wxml和wxss文件组成。其中,js文件负责页面逻辑,json文件管理页面配置,wxml定义结构,wxss处理样式。 4. **utils** 文件夹:包含通用的工具函数,比如网络请求、数据处理等。这些函数可以在多个页面中复用,提高代码的可维护性。 5. **model** 文件夹(如果存在):用于实现业务逻辑和数据模型,通常包含了与服务器交互的API接口和数据处理函数。 6. **style** 文件夹:集中管理全局样式,通过设置scss或less文件,可以统一小程序的视觉风格。 在H5页面源码部分,开发者可以找到适应于手机浏览器的HTML、CSS和JavaScript代码。这部分源码可能与微信小程序有所区别,但设计理念和功能实现方式相似。H5页面可以方便地在微信内置浏览器中打开,提供与小程序类似的服务。 在实际开发中,开发者需要根据需求对这些源码进行定制,例如: - 修改页面布局以符合品牌风格。 - 集成第三方服务,如地图API、支付接口等。 - 调整交互设计,提升用户体验。 - 添加个性化功能,如用户登录、评论分享等。 对于初学者,此模板提供了一个良好的学习起点,可以深入理解微信小程序的架构和开发流程。而对于有经验的开发者,模板则可以作为快速构建旅游类小程序的基础,节省大量时间和精力。【旅运微信小程序模板js代码前台前端H5页面源码】是一个有价值的资源,无论是在教学、实践还是商业项目中都有其价值。
2025-05-20 17:26:37 1.77MB 微信小程序 源码
1
JavaWeb是IT行业中一个重要的开发领域,主要用于构建交互式的网页应用程序。这个教程——"尚硅谷全新JavaWeb教程,企业主流javaweb技术栈 html、css、js 代码"——显然是为了帮助开发者掌握企业级JavaWeb开发的核心技术。下面将详细阐述其中涉及的主要知识点。 1. **HTML(超文本标记语言)**:HTML是网页的基础,用于定义网页结构和内容。在本教程中,你将学习如何创建基本的HTML文档,包括头部、主体、段落、标题、链接、图像等元素的使用。同时,还将深入理解表格、表单、框架和多媒体元素的应用,以及HTML5的新特性,如离线存储、拖放功能和新的标签元素。 2. **CSS(层叠样式表)**:CSS用于控制网页的布局和外观。通过学习CSS,你可以理解选择器的概念,如何定义颜色、字体、边距、布局等样式,并实现响应式设计,使网页在不同设备上都能良好显示。此外,CSS3的新增功能,如动画、过渡、伪类和新的布局模型(如Flexbox和Grid),也是重点学习内容。 3. **JavaScript**:JavaScript是一种客户端脚本语言,用于增加网页的动态性和交互性。在这个教程中,你将学习变量、数据类型、控制流、函数等基础语法,以及DOM(文档对象模型)操作,用于动态修改网页内容。BOM(浏览器对象模型)的使用也很重要,它允许JavaScript访问浏览器的一些特性,如窗口、历史、位置等。 4. **DOM(文档对象模型)**:DOM是HTML和XML文档的标准表示,它将网页内容结构化为一个节点树。通过DOM,JavaScript可以查找、添加、删除和修改页面上的任何元素,实现丰富的交互效果。 5. **课程资源与商业资料**:这部分可能包含各种辅助学习材料,如课件、示例代码、练习项目等,以帮助深化理解和实践。商业资料可能涵盖了一些实际项目中的最佳实践和行业标准,这对于提升你的专业技能和适应企业需求非常有帮助。 通过这个全面的教程,你不仅会掌握JavaWeb开发的基础,还能了解到当前企业中广泛采用的技术栈。理论学习结合实践操作,将使你具备开发高效、用户体验良好的JavaWeb应用的能力。记得在学习过程中不断动手实践,遇到问题及时查阅资料和交流,以加深理解并提高解决问题的能力。
2024-09-09 16:39:32 1.56MB html java 课程资源
1
本文实例讲述了JS实现的表格操作类。分享给大家供大家参考,具体如下: 运行效果截图如下: 点击此处查看在线演示。 具体代码如下: <html> <head> <meta http-equiv=Content-Type content=text/html; charset=gb2312> <style type=text/css>*{font-size:14px}button{margin:3px}</style> [removed] var mytable=null,mytable2=null; [removed]=funct
2024-05-24 11:41:37 64KB html表格 js代码
1
最近做的一个简陋的手机端拼图游戏,代码简单易懂,废话不多说了,让大家证明一切吧! 先看下效果图: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <meta name="viewport" id="viewport" content="width=device-width,initial-scale=1.0,user-scalable=no"> <style type="text/css"> html,body,ul,li,ol,dl,dd,dt,p,h1,h2,h
2024-05-13 22:45:18 117KB background js代码
1
使用JS制作了一款拼图游戏供大家参考。 原理分析: 1.鼠标的点击和松开事件 2.显示原图作为参考 3.方块的移动替换 4.是否完成拼图的判断 5.完成之后会弹窗提示 效果演示 代码展示 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>拼图游戏</title> </head> <style> body, html { padding: 0px; margin: 0px; background: #eee; } #fangkuai { width: 460px; height: 460px;
2024-05-13 22:40:02 68KB js代码
1
今天看到群里有人提问关于十六进制编码的问题,所以使用JS写了个小程序转换一下,记住:这只是编码,不是加密! 字符串转十六进制编码: 代码如下: str=”http://www.qq.com”; len=str.length; arr=[]; for(var i=0;i<len;i++){ arr.push(str.charCodeAt(i).toString(16)); } console.log(“\\x”+arr.join(“\\x”)); 十六进制编码转字符串: 代码如下: str=”\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x71\
2024-05-09 10:07:56 24KB 16进制 js代码
1
简易音乐音乐_微信小程序模板js代码前台前端H5页面源码+后台源码.rar
2024-03-04 00:30:39 25.35MB 微信小程序 整站源码
1
微信小程序通用的js代码
2024-03-04 00:28:18 1.48MB 微信小程序 javascript
1
一款简单的input输入框删除文字效果js代码,仿百度点击删除搜索框输入文字代码。
2024-02-25 18:21:09 1KB 其他代码
1