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 相关文章推荐
TextArea 控件的最大长度问题(js json)
Dec 16 Javascript
JQuery的ready函数与JS的onload的区别详解
Nov 21 Javascript
兼容IE、firefox以及chrome的js获取时间(getFullYear)
Jul 04 Javascript
JQuery实现简单的图片滑动切换特效
Nov 22 Javascript
基于jQuery实现表格的排序
Dec 02 Javascript
jQuery实现二维码扫描功能
Jan 09 Javascript
js, jQuery实现全选、反选功能
Mar 08 Javascript
Django使用多数据库的方法
Sep 06 Javascript
基于vue v-for 循环复选框-默认勾选第一个的实现方法
Mar 03 Javascript
vue使用laydate时间插件的方法
Nov 14 Javascript
原生JS检测CSS3动画是否结束的方法详解
Jan 27 Javascript
JS实现的新闻列表自动滚动效果示例
Jan 30 Javascript
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
PHP图片上传类带图片显示
2006/11/25 PHP
PHP操作mysql函数详解,mysql和php交互函数
2011/05/19 PHP
php array的学习笔记
2012/05/10 PHP
PHP实现将textarea的值根据回车换行拆分至数组
2015/06/10 PHP
Js中sort()方法的用法
2006/11/04 Javascript
javascript Select标记中options操作方法集合
2008/10/22 Javascript
js 提交和设置表单的值
2008/12/19 Javascript
Ext第一周 史上最强学习笔记---GridPanel(基础篇)
2008/12/29 Javascript
js 省地市级联选择
2010/02/07 Javascript
js实现addClass,removeClass,hasClass的函数代码
2011/07/13 Javascript
js获取php变量的实现代码
2013/08/10 Javascript
JQuery实现倒计时按钮具体方法
2013/11/14 Javascript
jQuery带箭头提示框tooltips插件集锦
2014/11/17 Javascript
深入分析jquery解析json数据
2014/12/09 Javascript
javascript中的正则表达式使用指南
2015/03/01 Javascript
最简单纯JavaScript实现Tab标签页切换的方式(推荐)
2016/07/25 Javascript
vue-resource 拦截器使用详解
2017/02/21 Javascript
实例分析编写vue组件方法
2019/02/12 Javascript
JavaScript函数式编程(Functional Programming)箭头函数(Arrow functions)用法分析
2019/05/22 Javascript
[01:08:17]2018DOTA2亚洲邀请赛3月29日 小组赛B组 EG VS VGJ.T
2018/03/30 DOTA
python二分法实现实例
2013/11/21 Python
python连接池实现示例程序
2013/11/26 Python
浅谈python中列表、字符串、字典的常用操作
2017/09/19 Python
caffe binaryproto 与 npy相互转换的实例讲解
2018/07/09 Python
python django model联合主键的例子
2019/08/06 Python
python中提高pip install速度
2020/02/14 Python
如何用python开发Zeroc Ice应用
2021/01/29 Python
浅谈html5之sse服务器发送事件EventSource介绍
2017/08/28 HTML / CSS
荷兰之家英文站:Holland at Home
2016/10/26 全球购物
波兰家具和室内装饰品购物网站:Vivre
2018/04/10 全球购物
为有想象力的人提供的生活方式商店:Firebox
2018/06/04 全球购物
俄罗斯品牌服装在线商店:VIPAVENUE
2020/08/10 全球购物
规划编制实施方案
2014/03/15 职场文书
演讲稿的写法
2014/05/19 职场文书
门卫岗位职责
2015/02/09 职场文书
Nginx搭建rtmp直播服务器实现代码
2021/03/31 Servers