jquery实现页面关键词高亮显示的方法


Posted in Javascript onMarch 12, 2015

本文实例讲述了jquery实现页面关键词高亮显示的方法。分享给大家供大家参考。具体分析如下:

通过jquery对页面搜索关键词进行高亮显示
支持中文多词页面中高亮显示

1. JavaScript代码如下:

jQuery.fn.extend({

    highlight: function(search, configs){

        if(typeof(search) == 'undefined') return;

        var configs =  jQuery.extend({

            insensitive: 1, //是否匹配大小写  0匹配 1不匹配

            hls_class: 'highlight', // 高亮后的class

            clear_last: true, // 清除原来高亮的结果

        },configs);   

        if(configs.clear_last) {

            $(this).find("strong."+configs.hls_class).each(function(){ 

                $(this).after($(this).text());

                $(this).remove(); 

            })

        }

        return this.each(function() {

            if(typeof(search) == "string") {

                $(this).highregx(search,configs);

            } else if (search.constructor === Array ) {

                for(var query in search){ 

                    var search_str = $.trim(search[query]);

                    if(search_str != "") $(this).highregx(search_str,configs);

                }

            } 

        });               

    },              

    highregx: function(query,configs){ 

        query = this.unicode(query);

        var regex = new RegExp("(<[^>]*>)|("+ query +")", configs.insensitive ? "ig" : "g");       

        this.html(this.html().replace(regex, function(a, b, c){

            return (a.charAt(0) == "<") ? a : "<strong class=\""+ configs.hls_class +"\">" + c + "</strong>";

        }));

    },

    unicode: function(s){ 

         var len=s.length; 

         var rs=""; 

         s = s.replace(/([-.*+?^${}()|[\]\/\\])/g,"\\$1");

         for(var i=0;i<len;i++){

            if(s.charCodeAt(i) > 255)

                rs+="\\u"+ s.charCodeAt(i).toString(16);

            else rs +=  s.charAt(i);

         }   

         return rs; 

    }  

});

2.highlight插件点击此处下载。

希望本文所述对大家的jQuery程序设计有所帮助。

Javascript 相关文章推荐
制作jquery遮罩层效果导航菜单代码分享
Dec 25 Javascript
js获取json元素数量的方法
Jan 27 Javascript
jQuery 1.9.1源码分析系列(十五)之动画处理
Dec 03 Javascript
jquery模拟多级复选框效果的简单实例
Jun 08 Javascript
AngularJS实现网站换肤实例
Feb 19 Javascript
jQuery中绑定事件bind() on() live() one()的异同
Feb 23 Javascript
jQuery使用正则验证15/18身份证的方法示例
Apr 27 jQuery
详解Vue中localstorage和sessionstorage的使用
Dec 22 Javascript
node.js 使用 net 模块模拟 websocket 握手进行数据传递操作示例
Feb 11 Javascript
vue项目中使用bpmn-自定义platter的示例代码
May 11 Javascript
Vue 如何使用props、emit实现自定义双向绑定的实现
Jun 05 Javascript
vue-cli3.x配置全局的scss的时候报错问题及解决
Apr 30 Vue.js
JavaScript设计模式学习之“类式继承”
Mar 12 #Javascript
鼠标事件的screenY,pageY,clientY,layerY,offsetY属性详解
Mar 12 #Javascript
JavaScript中return false的用法
Mar 12 #Javascript
JavaScript中神奇的call()方法
Mar 12 #Javascript
jquery实现无限分级横向导航菜单的方法
Mar 12 #Javascript
JavaScript中定义函数的三种方法
Mar 12 #Javascript
javascript实时显示北京时间的方法
Mar 12 #Javascript
You might like
MYSQL数据库初学者使用指南
2006/11/16 PHP
在同一窗体中使用PHP来处理多个提交任务
2008/05/08 PHP
php 攻击方法之谈php+mysql注射语句构造
2009/10/30 PHP
Symfony2创建页面实例详解
2016/03/18 PHP
深入解析Laravel5.5中的包自动发现Package Auto Discovery
2017/09/13 PHP
十分钟打造AutoComplete自动完成效果代码
2009/12/26 Javascript
使用javascript实现判断当前浏览器
2015/04/14 Javascript
jQuery判断指定id的对象是否存在的方法
2015/05/22 Javascript
jQuery表格行上移下移和置顶的实现方法
2015/10/08 Javascript
一分钟理解js闭包
2016/05/04 Javascript
AngularJS入门教程之过滤器详解
2016/08/19 Javascript
AngularJs基于角色的前端访问控制的实现
2016/11/07 Javascript
jQuery实现别踩白块儿网页版小游戏
2017/01/18 Javascript
使用grunt合并压缩js和css文件的方法
2017/03/02 Javascript
Vue-Cli中自定义过滤器的实现代码
2017/08/12 Javascript
深入理解ES7的async/await的用法
2017/09/09 Javascript
详解如何使用webpack在vue项目中写jsx语法
2017/11/08 Javascript
vue使用xe-utils函数库的具体方法
2018/03/06 Javascript
使用vue-router与v-if实现tab切换遇到的问题及解决方法
2018/09/07 Javascript
微信小程序自定义导航栏实例代码
2019/04/05 Javascript
解决VUE项目localhost端口服务器拒绝连接,只能用127.0.0.1的问题
2020/08/14 Javascript
[54:15]DOTA2-DPC中国联赛 正赛 DLG vs Dragon BO3 第二场2月1日
2021/03/11 DOTA
Python常见文件操作的函数示例代码
2011/11/15 Python
Python httplib模块使用实例
2015/04/11 Python
学习python类方法与对象方法
2016/03/15 Python
好用的Python编辑器WingIDE的使用经验总结
2016/08/31 Python
Windows下的Jupyter Notebook 安装与自定义启动(图文详解)
2018/02/21 Python
Django添加bootstrap框架时无法加载静态文件的解决方式
2020/03/27 Python
使用IPython或Spyder将省略号表示的内容完整输出
2020/04/20 Python
pycharm中leetcode插件使用图文详解
2020/12/07 Python
详解CSS3的opacity属性设置透明效果的用法
2016/05/09 HTML / CSS
如果Session Bean得Remove方法一直都不被调用会怎么样
2012/07/14 面试题
好人好事新闻稿
2015/07/17 职场文书
2019财务管理制度最新范本!
2019/07/09 职场文书
用Python将库打包发布到pypi
2021/04/13 Python
浅谈MySQL表空间回收的正确姿势
2021/10/05 MySQL