这篇文章主要介绍了JS实现静态页面搜索并高亮显示功能,涉及javascript事件响应、字符遍历替换及页面元素属性动态变换等相关操作,需要的朋友可以参考下

本文实例讲述了JS实现静态页面搜索并高亮显示功能。分享给大家供大家参考,具体如下:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>JS搜索</title>
</head>
<body>
<input id="key-word" value="请输入搜索内容" />
<button id="search-button">搜索</button>
<div id="content" >
<p>这是主体内容,有很多内容,很多很多啊啊啊……,比如1234abcd啊啊啊啊</p>
<p>这是主体内容,有很多内容,很多很多啊啊啊……,比如1234abcd啊啊啊啊</p>
<p>这是主体内容,有很多内容,很多很多啊啊啊……,比如1234abcd啊啊啊啊</p>
<p>这是主体内容,有很多内容,很多很多啊啊啊……,比如1234abcd啊啊< d d>啊啊</p>
</div>
<script>
function $(id){
return document.getElementById(id)
}
var putWordsObj = $('key-word');
putWordsObj.onfocus = function(){
if(this.value == '请输入搜索内容')this.value='';
}
putWordsObj.onblur = function(){
if(!this.value)this.value='请输入搜索内容';
}
//search
$('search-button').onclick = function(){
var content = $('content').innerHTML;
var keyWord = $('key-word').value;
content = search_do(content, keyWord);
$('content').innerHTML = content;
//alert(content)
}
function search_do(content,keyWord){
var keyWordArr = keyWord.replace(/[\s]+/g,' ').split(' ');
var re;
for(var n = 0; n < keyWordArr.length; n ++) {
//re = new RegExp(">[\s\S]*?"+keyWordArr[n]+"[\s\S]*?<\S","gmi");
re = new RegExp(""+keyWordArr[n]+"","gmi");
content = content.replace(re,'<span>'+keyWordArr[n]+'</span>');
}
return content;
}
</script>
</body>
</html>

运行效果如下:

更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScript数据结构与算法总结》、《JavaScript数算用法总结》、《JavaScript排序算法总结》、《JavaScript遍历算法与总结》、《JavaScript查找算法总结》及《JavaScript错误与调试总结》

希望本文所述对大家JavaScript程序设计有所帮助。

最新资讯
成功坐底10909米深海!“奋斗者”号胜利返航

成功坐底10909米深海!

来源:新华视点11月28日消息,28日上午8时30分许,随着一阵
花大钱搞自制内容,B站怎么想的?

花大钱搞自制内容,B站

B站似乎是有意想加入与爱优腾的竞争。但如果只是这样
俞敏洪亚布力演讲:是什么支撑我做新东方?

俞敏洪亚布力演讲:是什

俞敏洪讲述了自己作为企业家的商业心灵,也谈到了企业家
首批出口欧洲的中国制造特斯拉汽车运抵比利时

首批出口欧洲的中国制

首批出口欧洲的3000多辆在中国制造的特斯拉Model 3汽
疫情下的美国黑色星期五:无人排队店员比客多

疫情下的美国黑色星期

没有人排队。停车场空空如也。商场里店员比顾客多。这
蛋壳:“二房东”生意的闪电式扩张

蛋壳:“二房东”生意的

作为一种历史悠久的行当,租房市场尽管有无数被人吐槽的
最新文章
详解Vue的ref特性的使用

详解Vue的ref特性的使

这篇文章主要介绍了详解Vue的ref特性的使用,文中通过
vue学习笔记之slot插槽基本用法实例分析

vue学习笔记之slot插

这篇文章主要介绍了vue学习笔记之slot插槽基本用法,结
vue跳转方式(打开新页面)及传参操作示例

vue跳转方式(打开新页

这篇文章主要介绍了vue跳转方式(打开新页面)及传参操作,
vue学习笔记之过滤器的基本使用方法实例分析

vue学习笔记之过滤器

这篇文章主要介绍了vue学习笔记之过滤器的基本使用方
js获取本日、本周、本月的时间代码

js获取本日、本周、本

本篇文章给大家分享的内容是利用js如何获取本日、本周
node crawler如何添加promise支持

node crawler如何添加

这篇文章主要介绍了node crawler如何添加promise支持,