如何通过js使搜索关键词高亮

给你推荐通过jquery来实现高亮关键词。jquery.textSearch-1.0.js代码:

  1. (function($){
  2. $.fn.textSearch =function(str,options){
  3. var defaults ={
  4. divFlag:true,
  5. divStr:" ",
  6. markClass:"",
  7. markColor:"red",
  8. nullReport:true,
  9. callback:function(){
  10. returnfalse;
  11. }
  12. };
  13. var sets = $.extend({}, defaults, options ||{}), clStr;
  14. if(sets.markClass){
  15. clStr ="class=‘"+sets.markClass+"‘";
  16. }else{
  17. clStr ="style=‘color:"+sets.markColor+";‘";
  18. }
  19. //对前一次高亮处理的文字还原
  20. $("span[rel=‘mark‘]").removeAttr("class").removeAttr("style").removeAttr("rel");
  21. //字符串正则表达式关键字转化
  22. $.regTrim =function(s){
  23. var imp =/[\^\.\\\|\(\)\*\+\-\$\[\]\?]/g;
  24. var imp_c ={};
  25. imp_c["^"]="\\^";
  26. imp_c["."]="\\.";
  27. imp_c["\\"]="\\\\";
  28. imp_c["|"]="\\|";
  29. imp_c["("]="\\(";
  30. imp_c[")"]="\\)";
  31. imp_c["*"]="\\*";
  32. imp_c["+"]="\\+";
  33. imp_c["-"]="\\-";
  34. imp_c["$"]="\$";
  35. imp_c["["]="\\[";
  36. imp_c["]"]="\\]";
  37. imp_c["?"]="\\?";
  38. s = s.replace(imp,function(o){
  39. return imp_c[o];
  40. });
  41. return s;
  42. };
  43. $(this).each(function(){
  44. var t = $(this);
  45. str = $.trim(str);
  46. if(str ===""){
  47. alert("关键字为空");
  48. returnfalse;
  49. }else{
  50. //将关键字push到数组之中
  51. var arr =[];
  52. if(sets.divFlag){
  53. arr = str.split(sets.divStr);
  54. }else{
  55. arr.push(str);
  56. }
  57. }
  58. var v_html = t.html();
  59. //删除注释
  60. v_html = v_html.replace(/<!--(?:.*)\-->/g,"");
  61. //将HTML代码支离为HTML片段和文字片段,其中文字片段用于正则替换处理,而HTML片段置之不理
  62. var tags =/[^<>]+|<(\/?)([A-Za-z]+)([^<>]*)>/g;
  63. var a = v_html.match(tags), test =0;
  64. $.each(a,function(i, c){
  65. if(!/<(?:.|\s)*?>/.test(c)){//非标签
  66. //开始执行替换
  67. $.each(arr,function(index, con){
  68. if(con ===""){return;}
  69. var reg =newRegExp($.regTrim(con),"g");
  70. if(reg.test(c)){
  71. //正则替换
  72. c = c.replace(reg,"♂"+con+"♀");
  73. test =1;
  74. }
  75. });
  76. c = c.replace(/♂/g,"<span rel=‘mark‘ "+clStr+">").replace(/♀/g,"</span>");
  77. a[i]= c;
  78. }
  79. });
  80. //将支离数组重新组成字符串
  81. var new_html = a.join("");
  82. $(this).html(new_html);
  83. if(test ===0&& sets.nullReport){
  84. alert("没有搜索结果");
  85. returnfalse;
  86. }
  87. //执行回调函数
  88. sets.callback();
  89. });
  90. };
  91. })(jQuery);

使用方法是textSearch,具体为:$(选择器). textSearch(String,可选参数)。例如,

  1. $("body").textSearch("世界杯");

表示的含义就是查询并红色高亮标注body标签下的所有的“世界杯”这个关键字,也就是页面下高亮标注所有的“世界杯”文字。又如:

  1. $(".test").textSearch("空姐 凤姐 芙蓉姐",{markColor:"blue"});

则表示class中有test样式的所有标签下的“空姐”,“凤姐”,“芙蓉姐”文字用蓝色高亮标注。

我使用的过程为:(需要同时引入下面两个js文件才能正常运行)

<script type="text/javascript" src="jquery-2.0.0.js"></script>
<script type="text/javascript" src="jquery.textSearch-1.0.js"></script>
<script type="text/javascript">
$(function(){
var v = $("#txtSearchKeyword").val();   //获取id为txtSearchKeyword的text值赋给v
$("#searchTextTest").textSearch(v);     //将id为searchTextTest的文本中包含v的高亮显示
return false;
});

</script>

详细用法请参考:http://www.zhangxinxu.com/wordpress/?p=888

如何通过js使搜索关键词高亮

时间: 2024-12-21 00:13:59

如何通过js使搜索关键词高亮的相关文章

微信小程序--搜索关键词高亮

代码地址如下:http://www.demodashi.com/demo/14249.html 一.前期准备工作 软件环境:微信开发者工具 官方下载地址:https://mp.weixin.qq.com/debug/wxadoc/dev/devtools/download.html 1.基本需求. 实现搜索关键词高亮 2.案例目录结构 二.程序实现具体步骤 1.index.wxml代码 <!--index.wxml--> <view class="container"

JS实现查询关键词高亮效果

在页面上查询关键,使其高亮显示,实现代码如下: CSS样式:  <style type="text/css">         .highlight        {             background-color: yellow;         }  </style> javascript: function highlight() {             clearSelection(); //先清空一下上次高亮显示的内容:         

和我一起打造个简单搜索之SpringDataElasticSearch关键词高亮

前面几篇文章详细讲解了 ElasticSearch 的搭建以及使用 SpringDataElasticSearch 来完成搜索查询,但是搜索一般都会有搜索关键字高亮的功能,今天我们把它给加上. 系列文章 一.和我一起打造个简单搜索之ElasticSearch集群搭建 二.和我一起打造个简单搜索之ElasticSearch入门 三.和我一起打造个简单搜索之IK分词以及拼音分词 四.和我一起打造个简单搜索之Logstash实时同步建立索引 五.和我一起打造个简单搜索之SpringDataElasti

3.6 Lucene基本检索+关键词高亮+分页

3.2节我们已经运行了一个Lucene实现检索的小程序,这一节我们将以这个小程序为例,讲一下Lucene检索的基本步骤,同时介绍关键词高亮显示和分页返回结果这两个有用的技巧. 一.Lucene检索的基本步骤 1 import java.nio.file.Paths; 2 import java.io.*; 3 4 import org.apache.lucene.analysis.standard.StandardAnalyzer; 5 import org.apache.lucene.docu

在 Angular 中实现搜索关键字高亮

在 Angular 中,我们不应该试图直接修改 DOM 的内容,当需要更新 DOM 内容的时候,应该修改的其实是我们的数据模型,也就是 $scope 中的数据,Angular 会帮助我们将修改之后的数据展示在页面中. 但是,在有些情况下,比如我们有一个搜索框,希望将搜索的关键字在正文中高亮出来,这时候就会感觉比较吃力了,filter 可以帮助我们处理这种情况. 实际上,很多时候,我们的数据是不能直接输出到 DOM 中的,典型的比如日期,或者货币等等,通常需要将我们内部的数据格式化之后,再输出到页

http协议请求实战——get请求示例之抓取百度搜索关键词对应网页信息

1通过分析搜索关键词对应的网址发现字段名和内容均在网址中网址可简化为www.baidu.com/s?wd=搜索的关键词 根据分析出的规律可通过构造get请求用爬虫实现在百度上自动查询某个关键词 代码如下: import urllib.request 导入urllib.requestkeywd = '高同同' 指定关键词keywd_cod = urllib.request.quote(keywd)将关键词进行编码url = 'https://www.baidu.com/s?wd='输入网址url_

百度搜索关键词上线大家快点踊跃使用吧

近日,百度站长平台对百度搜索关键词工具进行了全面的升级,统计数据越来越精细,指标描述也越来越亲民.对于广大SEOer来说,长期总结观察这些百度数据,对于更好的了解其站点优化情况,对于制定其未来的关键词优化方案都大有裨益.可以说,新的数据数量级别和指标描述的改变,也标志着百度正逐步将加快其完善算法的步伐,大家有望在未来享受更公正的优化排名规则. 这次,百度主要通过热门关键词和热门页面来描述网站的受欢迎状况.注意,所谓的热门关键词和热门页面,是针对您自己的网站而言的,不具有绝对的统一性.您网站通过哪

如何从统计中批量获取BD搜索关键词及对应的入口页面?

前面我们介绍了通过cnzz的访问明细获取到搜索关键词及对应的入口页面,但是从BD搜索进来的关键词无法完整显示,只能呈现一些bd图片搜索的关键词,这是因为百度宣布从去年5月开始逐渐取消了referer关键词显示,保护站点流量关键词数据信息,第三方将不再可以轻易地窃取到流量关键词,令站点数据更加私密化.站长需要获得网站流量关键词时,可以使用百度站长平台提供的搜索关键词工具或者百度统计相关功能进行查询.是不是有点垄断的意味呢?没办法,国内的市场份额摆在那.当然你也可以针对其他搜索引擎做专门的优化.从统

2014美国不动产+房产搜索关键词统计

关键词字面 日均搜索量 美国房产 200 美国房产税 90 美国房地产 100 美国房子 50 美国房产税如何征收 40 美国房价 350 美国房产网 80 美国加州房产 10 美国二手房产 <5 美国知名房产网站 <5 美国投资房产 <5 美国房地产网 20 美国房产税是多少 10 美国房地产发展史 40 美国房产新闻 <5 美国 房产税 10 美国 房产 10 投资美国房产 <5 美国房产投资 20 美国房产价格 10 美国房产泡沫 10 美国房产中介 20 美国房屋 1