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 相关文章推荐
javascript addBookmark 加入收藏 多浏览器兼容
Aug 15 Javascript
JS 控制CSS样式表
Aug 20 Javascript
jquery实现的让超出显示范围外的导航自动固定屏幕最顶上
Sep 22 Javascript
JS JSON对象转为字符串的简单实现方法
Nov 18 Javascript
jquery创建表格(自动增加表格)代码分享
Dec 25 Javascript
浅谈javascript中this在事件中的应用
Feb 15 Javascript
flash+jQuery实现可关闭及重复播放的压顶广告
Apr 15 Javascript
js实现延迟加载的几种方法
Apr 24 Javascript
详解react服务端渲染(同构)的方法
Sep 21 Javascript
JavaScript使用表单元素验证表单的示例代码
Aug 20 Javascript
Weex开发之地图篇的具体使用
Oct 16 Javascript
9个JavaScript日常开发小技巧
Oct 06 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
PHPCMS的使用小结
2010/09/20 PHP
ThinkPHP CURD方法之field方法详解
2014/06/18 PHP
四个PHP非常实用的功能
2015/09/29 PHP
PHP 进度条函数的简单实例
2017/09/19 PHP
Prototype1.6 JS 官方下载地址
2007/11/30 Javascript
jquery插件 autoComboBox 下拉框
2010/12/22 Javascript
js,jQuery 排序的实现代码,网页标签排序的实现,标签排序
2011/04/27 Javascript
40个新鲜出炉的jQuery 插件和免费教程[上]
2012/07/24 Javascript
JS实现仿QQ面板的手风琴效果折叠菜单代码
2015/09/11 Javascript
js仿微博实现统计字符和本地存储功能
2015/12/22 Javascript
JQuery Mobile 弹出式登录框的实现方法
2016/05/28 Javascript
Angular使用ng-messages与PHP进行表单数据验证
2016/12/28 Javascript
angularjs 缓存的使用详解
2018/03/19 Javascript
React中如何引入Angular组件详解
2018/08/09 Javascript
jquery的$().each和$.each的区别
2019/01/18 jQuery
Layer.js实现表格溢出内容省略号显示,悬停显示全部的方法
2019/09/16 Javascript
Python中一行和多行import模块问题
2018/04/01 Python
Python 取numpy数组的某几行某几列方法
2019/10/24 Python
Python unittest单元测试框架实现参数化
2020/04/29 Python
python爬取2021猫眼票房字体加密实例
2021/02/19 Python
纯DOM+CSS3实现简单的小风车动画
2016/09/27 HTML / CSS
详解css3使用transform出现字体模糊的解决办法
2020/10/16 HTML / CSS
JSP和EJB可以共享HttpSession么?EJB里面可以改变session里面的内容
2013/06/05 面试题
资产评估专业大学生求职信
2013/09/29 职场文书
党校学习思想汇报
2014/01/06 职场文书
上课迟到检讨书100字
2014/01/11 职场文书
测试工程师职业规划书
2014/02/06 职场文书
高中军训第一天感言
2014/03/06 职场文书
关于运动会的口号
2014/06/07 职场文书
同志主要表现材料
2014/08/21 职场文书
个人事迹材料怎么写
2014/12/30 职场文书
2015年平安创建工作总结
2015/04/29 职场文书
谢师宴学生答谢词
2015/09/30 职场文书
2016五四青年节活动总结范文
2016/04/06 职场文书
基于HTML十秒做出淘宝页面
2021/10/24 HTML / CSS
Ruby GDBM操作简介及数据存储原理
2022/04/19 Ruby