<!DOCTYPE HTML>
<html lang="en">
<meta http-equiv="Content-Type" content="text/html; charset=gdk" />
<head>
<title>检索关键字</title>
<script src="http://libs.baidu.com/jquery/1.11.1/jquery.min.js"></script>
</head>
<body>
<div style="width:100%; height:100px">
<input id="key" type="text"/><input type="button" value="检索" onclick="search()"/>
</div> <div id="result">
说散就散 - 刘旭阳<br/> 词:张楚翘<br/> 曲:伍乐城<br/> 抱一抱就当作从没有在一起 好不好要解释都已经来不及<br/> 算了吧我付出过什么没关系 我忽略自己就因为遇见你<br/> 没办法好可怕那个我不像话 一直奋不顾身是我太傻<br/> 说不上爱别说谎就一点喜欢 说不上恨别纠缠别装作感叹<br/> 就当作我太麻烦不停让自己受伤 我告诉我自己感情就是这样<br/> 怎么一不小心太疯狂 抱一抱再好好觉悟不能长久<br/> 好不好有亏欠我们都别追究 算了吧我付出再多都不足够<br/> 我终于得救我不想再献丑 没办法不好吗大家都不留下<br/> 一直勉强相处总会累垮 说不上爱别说谎就一点喜欢<br/> 说不上恨别纠缠别装作感叹 就当作我太麻烦不停让自己受伤<br/> 我告诉我自己感情就是这样 怎么一不小心太疯狂<br/> 别后悔就算错过 在以后你少不免想起我<br/> 还算不错 当我不在你会不会难过<br/> 你够不够我这样洒脱 说不上爱别说谎就一点喜欢<br/> 说不上恨别纠缠别装作感叹 将一切都体谅将一切都原谅<br/> 我尝试找答案而答案很简单 简单得很遗憾<br/> 因为成长我们逼不得已要习惯 因为成长我们忽尔间说散就散<br/>
</div> <script> function keyLight(id, key, bgColor){
var oDiv = document.getElementById(id),
sText = oDiv.innerHTML,
bgColor = bgColor || "orange",
sKey = "<span name='addSpan' style='background-color: "+bgColor+";'>"+key+"</span>",
num = -1,
rStr = new RegExp(key, "g"),
rHtml = new RegExp("\<.*?\>","ig"), //匹配html元素
aHtml = sText.match(rHtml); //存放html元素的数组
sText = sText.replace(rHtml, '{~}'); //替换html标签
sText = sText.replace(rStr,sKey); //替换key
sText = sText.replace(/{~}/g,function(){ //恢复html标签
num++;
return aHtml[num];
});
oDiv.innerHTML = sText;
} function search(){
if(typeof($("span[name='addSpan']").get(0)) != 'undefined'){
var html = $("span[name='addSpan']").get(0).textContent;
$("span[name='addSpan']").before(html);
$("span[name='addSpan']").remove();
}
//location.reload();
var key = document.getElementById("key").value;
if($.trim(key) != null && $.trim(key) != ''){
keyLight('result', key);
}
} </script> </body>
</html>

Js实现页面关键字高亮显示的更多相关文章

  1. 原生Js 两种方法实现页面关键字高亮显示

    原生Js 两种方法实现页面关键字高亮显示 上网看了看别人写的,不是兼容问题就是代码繁琐,自己琢磨了一下用两种方法都可以实现,各有利弊. 方法一 依靠正则表达式修改 1.获取obj的html2.统一替换 ...

  2. JS将搜索的关键字高亮显示实现代码

    这篇文章介绍了JS将搜索的关键字高亮显示实现代码,有需要的朋友可以参考一下 用JS让文章内容指定的关键字加亮 是这样的.. 现在有这些关键字:美容,生活,购物 当在文章里头出现这些关键字,就把它加亮显 ...

  3. js中页面刷新和页面跳转的方法总结

    .js中cookie的基本用法简介 2009-12-15 js中页面刷新和页面跳转的方法总结 文章分类:Web前端 关键字: javascript js中页面刷新和页面跳转的方法总结 1.histor ...

  4. js中页面刷新和页面跳转的方法总结 [ 转自欢醉同学 ]

    .js中cookie的基本用法简介 2009-12-15 js中页面刷新和页面跳转的方法总结 文章分类:Web前端 关键字: javascript js中页面刷新和页面跳转的方法总结 1.histor ...

  5. 前端(十二)—— JavaScript基础操作:if语句、for循环、while循环、for...in、for...of、异常处理、函数、事件、JS选择器、JS操作页面样式

    JavaScript基础操作 一.分支结构 1.if语句 if 基础语法 if (条件表达式) { 代码块; } // 当条件表达式结果为true,会执行代码块:反之不执行 // 条件表达式可以为普通 ...

  6. JS实现页面进入、返回定位到具体位置

    最为一个刚入职不久的小白...慢慢磨练吧... JS实现页面返回定位到具体位置 其实浏览器也自带了返回的功能,也就是说,自带了返回定位的功能.正常的跳转,返回确实可以定位,但是有些特殊场景就不适用了. ...

  7. js中this关键字测试集锦

    参考:阮一峰<javascript的this用法>及<JS中this关键字详解> this是Javascript语言的一个关键字它代表函数运行时,自动生成的一个内部对象,只能在 ...

  8. js jquery 页面加载初始化方法

    js jquery 页面加载初始化方法 一.js页面加载初始化方法 // 1.在body里面写初始化方法. <body onload='init()'> </body> < ...

  9. JS中this关键字详解

    本文主要解释在JS里面this关键字的指向问题(在浏览器环境下). 阅读此文章,还需要心平气和的阅读完,相信一定会有所收获,我也会不定期的发布,分享一些文章,共同学习 首先,必须搞清楚在JS里面,函数 ...

随机推荐

  1. webpack中require和import的区别

    commonjs同步语法 经典的commonjs同步语法如下: var a = require('./a'); a.show(); 此时webpack会将a.js打包进引用它的文件中.这是最普遍的情形 ...

  2. 【ES】学习3-请求体查询

    1.空查询 GET /index_2014*/type1,type2/_search {} GET /_search { , } 2.查询表达式 DSL只需将查询语句传递给 query 参数 GET ...

  3. 并发之volatile关键字

    volatile关键字 volatile关键字是什么 在上一章我们讲到了并发的的三个概念,那么今天在讲解下在java中可以保证可见性和有序性的一个关键字. volatile关键字 :当变量的值被该关键 ...

  4. 易错之for循环

    for i in range(3): print(i) print(i,"---") #Python的问题就在于,当循环结束以后,循环体中的临时变量i不会销毁,而是继续存在于执行环 ...

  5. MVC开发中的常见错误-07-“System.IO.DirectoryNotFoundException”类型的未经处理的异常在 mscorlib.dll 中发生

    “System.IO.DirectoryNotFoundException”类型的未经处理的异常在 mscorlib.dll 中发生 其他信息: 未能找到路径“F:\Users\home\Docume ...

  6. canvas绘制简易动画

    在canvas画布中制作动画相对来说很简单,实际上就是不断变化的坐标.擦除.重绘的过程 1.使用setInterval方法设置动画的间隔时间. setInterval(code,millisec) s ...

  7. Ext.js入门:面板(五)

    一:Ext.Panel类简介 二:Ext.Panel类常用属性方法与事件 三:Ext.Panel实例运用 1.Ext.Panel类简介   类 Ext.Panel   包: Ext   定义的文件: ...

  8. easyx的基础应用教程

    引用 什么是 EasyX? 作者:EasyX EasyX 是针对 C++ 的图形库,可以帮助 C 语言初学者快速上手图形和游戏编程. 比如,可以用 VC + EasyX 很快的用几何图形画一个房子,或 ...

  9. hdu 2157 从a点走到b点刚好k步的方案数是多少 (矩阵快速幂)

    n个点 m条路 询问T次 从a点走到b点刚好k步的方案数是多少 给定一个有向图,问从A点恰好走k步(允许重复经过边)到达B点的方案数mod p的值把 给定的图转为邻接矩阵,即A(i,j)=1当且仅当存 ...

  10. CS224d 单隐层全连接网络处理英文命名实体识别tensorflow

    什么是NER? 命名实体识别(NER)是指识别文本中具有特定意义的实体,主要包括人名.地名.机构名.专有名词等.命名实体识别是信息提取.问答系统.句法分析.机器翻译等应用领域的重要基础工具,作为结构化 ...