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 相关文章推荐
ie浏览器使用js导出网页到excel并打印
Mar 11 Javascript
jquery自动填充勾选框即把勾选框打上true
Mar 24 Javascript
JavaScript实现非常简单实用的下拉菜单效果
Aug 27 Javascript
基于JavaScript实现瀑布流布局(二)
Jan 26 Javascript
IOS中safari下的select下拉菜单文字过长不换行的解决方法
Sep 26 Javascript
微信小程序 绘图之饼图实现
Oct 24 Javascript
node.js的事件机制
Feb 08 Javascript
原生js轮播特效
May 18 Javascript
详解vue-router 路由元信息
Sep 13 Javascript
echarts大屏字体自适应的方法步骤
Jul 12 Javascript
layer iframe 设置关闭按钮的方法
Sep 12 Javascript
JS实现小星星特效
Dec 24 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
PHILIPS AE3805收音机的分析打磨
2021/03/02 无线电
php中getservbyport与getservbyname函数用法实例
2014/11/18 PHP
php简单计算页面加载时间的方法
2015/06/19 PHP
解决laravel 5.1报错:No supported encrypter found的办法
2017/06/07 PHP
PHP从零开始打造自己的MVC框架之路由类实现方法分析
2019/06/03 PHP
php解析非标准json、非规范json的方式实例
2020/12/10 PHP
Bootstrap按钮组件详解
2016/04/26 Javascript
jquery自定义插件开发之window的实现过程
2016/05/06 Javascript
Json对象和字符串互相转换json数据拼接和JSON使用方式详细介绍(小结)
2016/10/25 Javascript
JS实现加载时锁定HTML页面元素的方法
2017/06/24 Javascript
详解如何在react中搭建d3力导向图
2018/01/12 Javascript
React Router V4使用指南(精讲)
2018/09/17 Javascript
Vue实现动态添加或者删除对象和对象数组的操作方法
2018/09/21 Javascript
深入浅析Vue.js 中的 v-for 列表渲染指令
2018/11/19 Javascript
小程序如何写动态标签的实现方法
2020/02/05 Javascript
React生命周期原理与用法踩坑笔记
2020/04/28 Javascript
JavaScript中reduce()的5个基本用法示例
2020/07/19 Javascript
javascript实现放大镜功能
2020/12/09 Javascript
[50:27]OG vs LGD 2018国际邀请赛淘汰赛BO3 第一场 8.26
2018/08/30 DOTA
[04:15]DOTA2-DPC中国联赛1月19日Recap集锦
2021/03/11 DOTA
python 生成目录树及显示文件大小的代码
2009/07/23 Python
Flask框架学习笔记(一)安装篇(windows安装与centos安装)
2014/06/25 Python
python协程用法实例分析
2015/06/04 Python
Python实现批量更换指定目录下文件扩展名的方法
2016/09/19 Python
python opencv人脸检测提取及保存方法
2018/08/03 Python
python数据处理 根据颜色对图片进行分类的方法
2018/12/08 Python
python2.7实现邮件发送功能
2018/12/12 Python
python实现的按要求生成手机号功能示例
2019/10/08 Python
浅谈css3中calc在less编译时被计算的解决办法
2017/12/04 HTML / CSS
幼儿园毕业园长感言
2014/02/24 职场文书
小学教学随笔感言
2014/02/26 职场文书
行政主管岗位职责范本
2015/04/09 职场文书
教师个人师德工作总结2015
2015/05/12 职场文书
读《儒林外史》有感:少一些功利,多一些真诚
2020/01/19 职场文书
Java实现给Word文件添加文字水印
2022/02/15 Java/Android
vue打包时去掉所有的console.log
2022/04/10 Vue.js