博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关键字检索高亮标出-javasript/jQuery代码实现
阅读量:6327 次
发布时间:2019-06-22

本文共 1147 字,大约阅读时间需要 3 分钟。

原文:http://www.open-open.com/code/view/1454504432089

 

  此方法传入2个参数,一个是被检索内容所在的表单或者HTML元素的ID,另一为关键字,多个关键字的话,以空格隔开,下边直接上代码分享给大家:

/*关键词检索高亮标出 *param idHtmlContent 需要检索的HTML内容ID *param keyword 关键字,多个以空格隔开 */function keywordHighlight(idHtmlContent,keyword) {	var content= $("#"+idHtmlContent).html();//获取内容	if ($.trim(keyword)==""){		return;//关键字为空则返回	}	var htmlReg = new RegExp("\<.*?\>", "i");	var arrA = new Array();	//替换HTML标签	for (var i = 0; true; i++) {		var m = htmlReg.exec(content);		if (m) {			arrA[i] = m;		}else {			break;		}		content = content.replace(m, "{[(" + i + ")]}");	}	words = unescape(keyword.replace(/\+/g, ' ')).split(/\s+/);	//替换关键字 	for (w = 0; w < words.length; w++) {		var r = new RegExp("(" + words[w].replace(/[(){}.+*?^$|\\\[\]]/g, "\\$&") + ")", "ig");		content = content.replace(r, ""+words[w]+"");//关键字样式	}	//恢复HTML标签 	for (var i = 0; i < arrA.length; i++) {		content = content.replace("{[(" + i + ")]}", arrA[i]);	}	 $("#"+idHtmlContent).html(content);}

 

效果:

注意,如果你是获取的js网页编辑器里的内容,直接传入textarea的ID是不行的,结果是改变了但是样式是显示不出来的,最后的代码应该像这样:

var obj = KindEditor.create('textarea[id="' + containerId + '"]', config); obj.html(改变后的内容);

 

转载地址:http://dtgaa.baihongyu.com/

你可能感兴趣的文章
2016年1月15日面试某互联网公司总结(转)
查看>>
osc搜索引擎框架search-framework,TngouDB,gso,
查看>>
Ajax无刷新提交表单和显示
查看>>
CSS透明度设置支持IE,Chrome,Firefox浏览器
查看>>
Android之——短信的备份与还原
查看>>
select sum也会返回null值
查看>>
P1034 矩形覆盖
查看>>
Uva - 12050 Palindrome Numbers【数论】
查看>>
Java第三次作业
查看>>
【HDOJ 3652】B-number
查看>>
android代码混淆笔记
查看>>
Codeforces Round #423 (Div. 2, rated, based on VK Cup Finals) C. String Reconstruction 并查集
查看>>
BMP文件的读取与显示
查看>>
Flash文字效果
查看>>
各种排序算法总结篇(高速/堆/希尔/归并)
查看>>
使用c#訪问Access数据库时,提示找不到可安装的 ISAM
查看>>
cocos2d JS 自定义事件分发器(接收与传递数据) eventManager
查看>>
thinkPHP 模板的使用技巧(十三)
查看>>
简简单单搞掂恼人的Laravel 5安装
查看>>
.NET 即时通信,WebSocket服务端实例
查看>>