通过javascript对html里面内容进行高亮显示, 可以同时高亮多个关键字, 每个关键字以不同的颜色展示
代码如下:
/** * 高亮显示关键字, 构造函数 * @param {} colors 颜色数组,其中每个元素是一个 '背景色,前景色' 组合 */ var Highlighter = function(colors) { this.colors = colors; if (this.colors == null) { //默认颜色 this.colors = ['#ffff00,#FF0000','#dae9d1,#FF0000','#eabcf4,#FF0000', '#c8e5ef,#FF0000','#f3e3cb, #FF0000', '#e7cfe0,#FF0000', '#c5d1f1,#FF0000','#deeee4, #FF0000','#b55ed2,#FF0000', '#dcb7a0,#FF0000', '#7983ab,#FF0000', '#6894b5, #FF0000']; } }; /** * 高亮显示关键字 * @param {} node html element * @param {} keywords 关键字, 多个关键字可以通过空格隔开, 其中每个关键字会以一种颜色显式 * * 用法: * var hl = new Highlighter(); * hl.highlight(document.body, '这个 世界 需要 和平'); */ Highlighter.prototype.highlight = function(node, keywords) { if (!keywords || !node || !node.nodeType || node.nodeType != 1) return; keywords = this.parsewords(keywords); if (keywords == null) return; for (var i = 0; i < keywords.length; i++) { this.colorword(node, keywords[i]); } }; /** * 对所有#text的node进行查找,如果有关键字则进行着色 * @param {} node 节点 * @param {} keyword 关键字结构体,包含了关键字、前景色、背景色 */ Highlighter.prototype.colorword = function(node, keyword) { for (var i = 0; i < node.childNodes.length; i++) { var childNode = node.childNodes[i]; if (childNode.nodeType == 3) { //childNode is #text var re = new RegExp(keyword.word, 'i'); if (childNode.data.search(re) == -1) continue; re = new RegExp('(' + keyword.word + ')', 'gi'); var forkNode = document.createElement('span'); forkNode.innerHTML = childNode.data.replace(re, '<span style="background-color:'+keyword.bgColor+';color:'+keyword.foreColor+'" mce_style="background-color:'+keyword.bgColor+';color:'+keyword.foreColor+'">$1</span>'); node.replaceChild(forkNode, childNode); } else if (childNode.nodeType == 1) { //childNode is element this.colorword(childNode, keyword); } } }; /** * 将空格分隔开的关键字转换成对象数组 * @param {} keywords * @return {} */ Highlighter.prototype.parsewords = function(keywords) { keywords = keywords.replace(/s+/g, ' '); keywords = keywords.split(' '); if (keywords == null || keywords.length == 0) return null; var results = []; for (var i = 0; i < keywords.length; i++) { var keyword = {}; var color = this.colors[i % this.colors.length].split(','); keyword.word = keywords[i]; keyword.bgColor = color[0]; keyword.foreColor = color[1]; results.push(keyword); } return results; }; /** * 按照字符串长度,由长到短进行排序 * @param {} list 字符串数组 */ Highlighter.prototype.sort = function(list) { list.sort(function(e1, e2) { return e1.length < e2.length; }); };
调用代码如下:
var hl = new Highlighter(); //document.body为dom对象,查找范围 hl.highlight(document.body, $("#lighter_words").val());
参考:
html dom: http://www.cnblogs.com/x116/articles/1083915.html
javascript 面向对象:http://www.cnblogs.com/Luoke365/archive/2007/08/04/842608.html
正则表达式:请看本blog关于javascript正则表达式的描述
javascript高亮:http://www.cnblogs.com/jenry/archive/2008/02/23/1078807.html
相关推荐
综上所述,React中实现搜索结果中关键词高亮显示涉及到对组件状态和属性的管理、使用filter函数过滤数组、正则表达式的应用、字符串的替换以及安全地处理HTML内容。这些知识点结合在一起,构成了一个完整的关键词...
总结来说,这个“jQuery查找关键词文字高亮显示代码”是一个实用的交互功能,它通过jQuery实现了动态高亮显示搜索关键词,提升了用户查找信息的效率。通过理解并应用上述步骤,开发者可以轻松地将这个功能整合到自己...
这个组件可以帮助开发者轻松地实现关键词高亮功能,提升用户在浏览和搜索文本时的体验。 首先,让我们了解React组件的基本概念。React是Facebook开源的一个JavaScript库,用于构建用户界面,尤其是单页应用。它采用...
总结来说,本文通过介绍JavaScript实现关键词高亮显示的思路和代码,揭示了在网页开发中如何利用JavaScript操纵DOM元素和字符串处理,以实现增强用户体验的功能。掌握这些知识点对于Web开发者来说是十分重要的。
在这个名为"jQuery查找关键词文字高亮显示代码.zip"的压缩包中,包含了一个使用jQuery实现的搜索关键词高亮显示的示例。这个功能在很多场合都非常实用,比如搜索引擎结果展示或者文本搜索定位。 首先,`index.html`...
}在JavaScript中,对文本内容进行关键词高亮是一项常见的需求,特别是在搜索结果展示或者代码高亮时。本段代码提供了一个名为`MarkHighLight`的函数,它实现了对HTML元素内指定关键词的高亮标记功能。 首先,我们...
总结来说,这个项目提供了一种使用jQuery实现关键词查找并高亮显示的方法,对于学习jQuery的DOM操作、事件处理以及了解如何用JavaScript改进用户体验,都是很好的实例。通过深入理解并实践这个代码,开发者可以更好...
标题中的“javascript关键字实时自动高亮”指的是在网页中,通过JavaScript编程技术实现实时检测并高亮显示特定关键字的功能。这种技术常用于突出显示页面上的重要信息,提高用户阅读体验,尤其在文档、博客或者论坛...
综上所述,"js实现插入代码按代码格式关键词等高亮显示"涵盖了从代码插入到格式化再到关键词高亮的一系列步骤,通过JavaScript和相关的库工具,我们可以创建出专业且美观的代码展示效果。在实际项目中,根据需求选择...
通过这个控件,我们可以模拟浏览器的行为,如加载网页、执行JavaScript、获取网页内容等。 在"网页查找并高亮显示结果"这个项目中,我们需要实现的功能是查找指定文本在网页中的位置,并将其高亮显示。这涉及到两个...
总之,“页面SQL编辑高亮显示”是一个实用的Web开发工具,它结合了JavaScript和JSP技术,提供了实时的SQL语句高亮显示功能。开发者可以借此提高用户在网页上编写和查看SQL时的效率和舒适度。通过适配和扩展,还能...
在网页开发中,jQuery库因其简洁的语法和强大的功能,被广泛用于实现各种交互效果,其中之一就是“关键词高亮搜索”。jQuery高亮关键词搜索通常应用于搜索引擎或者文本内容展示页面,帮助用户快速定位到他们关心的...
**jQuery高亮插件——实现文本高亮与关键词查找** jQuery是一个广泛使用的JavaScript库,它极大地简化了HTML文档遍历、事件处理、动画以及...在全文检索应用中,结合关键词高亮,能更直观地展示结果,增强交互效果。
文档中通过JavaScript实现了简单的关键词高亮功能。 #### HTML结构 文档首先定义了一个基本的HTML结构,包括`<!DOCTYPE html>`声明、`<html>`标签以及内部的`<head>`和`<body>`部分。其中`<head>`部分包含了元数据...
jQuery关键词高亮是一种常见的网页开发技术,主要用于提升用户体验,使用户在浏览大量文本内容时能够快速定位到他们关心的...在网页开发中熟练运用jQuery关键词高亮,可以提升用户对网站的满意度,进一步优化用户体验。
本文将详细解析一个基于jQuery实现的高亮显示关键词代码,通过分析`index.html`和`css`文件,我们将深入理解其工作原理和应用方法。 一、jQuery简介 jQuery是一个高效、简洁的JavaScript库,它简化了HTML文档遍历、...
在IT领域,搜索内容高亮显示是一个常见的功能,它增强了用户体验,使得用户在大量文本或数据中快速定位和识别搜索关键词。本示例主要探讨如何实现这个功能,以"搜索栏输入文字后,在内容中高亮显示搜索文字demo"为例...
接下来,我们编写JavaScript代码,这部分代码主要使用jQuery监听文本框的`keyup`事件,每当用户输入时,触发搜索并高亮显示关键词。在`search_highlight.js`文件中写入以下内容: ```javascript $(document).ready...
匹配到的关键词被包裹在`<span>`标签内,`class="highlight"`使得我们可以通过CSS控制高亮样式。 最后,为了使高亮效果美观,我们需要在CSS中定义`.highlight`类。例如: ```css .highlight { background-color: ...
本教程将详细讲解如何利用jQuery实现高亮显示关键词的功能,以便于用户在搜索结果中快速定位到他们关心的关键词。 首先,我们需要了解jQuery的核心概念。jQuery对象是jQuery库的核心,它封装了DOM元素,使得操作DOM...