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 相关文章推荐
JS在textarea光标处插入文本的小例子
Mar 22 Javascript
node.js中的fs.rmdir方法使用说明
Dec 16 Javascript
javascript实现复选框超过限制即弹出警告框的方法
Feb 25 Javascript
JavaScript操作select元素和option的实例代码
Jan 29 Javascript
JavaScript高仿支付宝倒计时页面及代码实现
Oct 21 Javascript
简单的jQuery拖拽排序效果的实现(增强动态)
Feb 09 Javascript
js和jquery中获取非行间样式
May 05 jQuery
vue + vuex todolist的实现示例代码
Mar 09 Javascript
在vue项目中,将juery设置为全局变量的方法
Sep 25 Javascript
vue观察模式浅析
Sep 25 Javascript
javascript+Canvas实现画板功能
Jun 23 Javascript
vue 在服务器端直接修改请求的接口地址
Dec 19 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
30 个很棒的PHP开源CMS内容管理系统小结
2011/10/14 PHP
laravel如何开启跨域功能示例详解
2017/08/31 PHP
爱恋千雪-US-AscII加密解密工具(网页加密)下载
2007/06/06 Javascript
JavaScript 节点操作 以及DOMDocument属性和方法
2007/12/06 Javascript
浅谈JSON和JSONP区别及jQuery的ajax jsonp的使用
2014/11/23 Javascript
测试IE浏览器对JavaScript的AngularJS的兼容性
2015/06/19 Javascript
JavaScript中this的9种应用场景及三种复合应用场景
2015/09/12 Javascript
jQuery筛选数组之grep、each、inArray、map的用法及遍历json对象
2016/06/20 Javascript
基于Vue的文字跑马灯组件(npm 组件包)
2017/05/24 Javascript
Angular中自定义Debounce Click指令防止重复点击
2017/07/26 Javascript
vue父组件向子组件动态传值的两种方法
2017/11/11 Javascript
vue嵌套路由与404重定向实现方法分析
2018/05/04 Javascript
解决vue点击控制单个样式的问题
2018/09/05 Javascript
Vue从TodoList中学父子组件通信
2019/02/05 Javascript
[02:07]2018DOTA2亚洲邀请赛主赛事第三日五佳镜头 fy极限反杀
2018/04/06 DOTA
python中使用smtplib和email模块发送邮件实例
2014/04/22 Python
python中使用enumerate函数遍历元素实例
2014/06/16 Python
qpython3 读取安卓lastpass Cookies
2016/06/19 Python
Python cookbook(数据结构与算法)保存最后N个元素的方法
2018/02/13 Python
在win10和linux上分别安装Python虚拟环境的方法步骤
2019/05/09 Python
Python assert语句的简单使用示例
2019/07/28 Python
python 创建一维的0向量实例
2019/12/02 Python
Django import export实现数据库导入导出方式
2020/04/03 Python
详解Django中views数据查询使用locals()函数进行优化
2020/08/24 Python
如何基于Django实现上下文章跳转
2020/09/16 Python
计算机网络专业推荐信
2013/11/24 职场文书
优秀班集体获奖感言
2014/02/03 职场文书
动漫专业高职生职业生涯规划书
2014/02/15 职场文书
群众路线教育实践活动心得体会
2014/03/07 职场文书
创建文明学校实施方案
2014/03/11 职场文书
金融系应届毕业生求职信
2014/05/26 职场文书
2015年环境整治工作总结
2015/05/22 职场文书
班级联欢会主持词
2015/07/03 职场文书
2016年保险公众宣传日活动总结
2016/04/05 职场文书
2019最新公司租房合同(例文)
2019/07/18 职场文书
微信小程序纯CSS实现无限弹幕滚动效果
2022/09/23 HTML / CSS