jQuery 实现页面关键字查询
来源:互联网 发布:php 模拟http请求 编辑:程序博客网 时间:2024/04/30 16:02
今天在项目中用到了页面关键字搜索,总结一下使用心得和遇见的问题
使用的是JavaScript中的 RegExp(正则表达式)对象,
var regExp = new RegExp(keyword,'g');
// keyword:是关键字,
g:执行全局匹配,如果不输入的话将会查一条,
i:执行大小写不敏感匹配,
m:执行多行匹配
然后调用 test()方法进行匹配查找就可以了,此时regExp内容就是 \keyword\g 一个正则表达式
regExp.test("text");
//text:需要匹配的内容
之后只要将找到的关键字替换,加上标记颜色就行了
$('#textContent').each(function() {
var html = $(this).html();//获取当前对象的文本内容
var newHtml = html.replace(regExp, '<span class="highlight" style="color:red;font-size:15px;">' + keyword +'</span>');
$(this).html(newHtml);//更新
});
因为考虑到用户体验所以又写了一个滚动条自动到标记处的方法
var j = 0;
function moveScroll(){
if (j > $(".highlight").size() - 1) {//判断查询到了多少个内容
j = 0;
}
if($(".highlight").size()>1){
//然后在文本容器中查找class属于为highlight与浏览器顶部距离
var top =$("#textContent").find(".highlight")[j].offsetTop;
$("#textContent").animate({scrollTop: top});
j++;
}
}
完整代码 :
可以进行多词查找,支持IE8
function search(){
var keyword=$(".keyword").val();
if(keyword==""){
return;
}
//查询前要先替换成原始的文本
$("#textContent").html("<pre class='textContent' style='font-size:15px'>"+me.getView().textContent+"</pre>");
keyword=keyword.trim();
var index = keyword.lastIndexOf(",");
var dex = keyword.lastIndexOf(",");
var arr;
if (index != -1) {
arr = keyword.split(",");
} else if (dex != -1) {
arr = keyword.split(",");
} else {
arr = keyword.split(" ");
}
var length = arr.length;
for (var i = 0; i < length; i++) {
highlight(arr[i],me.getView().textContent);
}
moveScroll();
$("#searchTab_ex #num").text($(".highlight").size());//向页面显示有查询多少条数据
}
function highlight(keyword,textContent){
var regExp = new RegExp(keyword, 'g')
if (!regExp.test(textContent)) {
return;
}
$('#textContent').each(function() {
var html = $(this).html();
var newHtml = html.replace(regExp, '<span class="highlight" style="color:red;font-size:15px;">' + keyword + '</span>');//将找到的关键字替换
$(this).html(newHtml);//更新;
});
}
var j = 0;
function moveScroll(){
if (j > $(".highlight").size() - 1) {
j = 0;
}
if($(".highlight").size()>1){
var top =$("#textContent").find(".highlight")[j].offsetTop;
$("#textContent").animate({scrollTop: top});
j++;
}
}
使用的是JavaScript中的 RegExp(正则表达式)对象,
var regExp = new RegExp(keyword,'g');
// keyword:是关键字,
g:执行全局匹配,如果不输入的话将会查一条,
i:执行大小写不敏感匹配,
m:执行多行匹配
然后调用 test()方法进行匹配查找就可以了,此时regExp内容就是 \keyword\g 一个正则表达式
regExp.test("text");
//text:需要匹配的内容
之后只要将找到的关键字替换,加上标记颜色就行了
$('#textContent').each(function() {
var html = $(this).html();//获取当前对象的文本内容
var newHtml = html.replace(regExp, '<span class="highlight" style="color:red;font-size:15px;">' + keyword +'</span>');
$(this).html(newHtml);//更新
});
因为考虑到用户体验所以又写了一个滚动条自动到标记处的方法
var j = 0;
function moveScroll(){
if (j > $(".highlight").size() - 1) {//判断查询到了多少个内容
j = 0;
}
if($(".highlight").size()>1){
//然后在文本容器中查找class属于为highlight与浏览器顶部距离
var top =$("#textContent").find(".highlight")[j].offsetTop;
$("#textContent").animate({scrollTop: top});
j++;
}
}
完整代码 :
可以进行多词查找,支持IE8
function search(){
var keyword=$(".keyword").val();
if(keyword==""){
return;
}
//查询前要先替换成原始的文本
$("#textContent").html("<pre class='textContent' style='font-size:15px'>"+me.getView().textContent+"</pre>");
keyword=keyword.trim();
var index = keyword.lastIndexOf(",");
var dex = keyword.lastIndexOf(",");
var arr;
if (index != -1) {
arr = keyword.split(",");
} else if (dex != -1) {
arr = keyword.split(",");
} else {
arr = keyword.split(" ");
}
var length = arr.length;
for (var i = 0; i < length; i++) {
highlight(arr[i],me.getView().textContent);
}
moveScroll();
$("#searchTab_ex #num").text($(".highlight").size());//向页面显示有查询多少条数据
}
function highlight(keyword,textContent){
var regExp = new RegExp(keyword, 'g')
if (!regExp.test(textContent)) {
return;
}
$('#textContent').each(function() {
var html = $(this).html();
var newHtml = html.replace(regExp, '<span class="highlight" style="color:red;font-size:15px;">' + keyword + '</span>');//将找到的关键字替换
$(this).html(newHtml);//更新;
});
}
var j = 0;
function moveScroll(){
if (j > $(".highlight").size() - 1) {
j = 0;
}
if($(".highlight").size()>1){
var top =$("#textContent").find(".highlight")[j].offsetTop;
$("#textContent").animate({scrollTop: top});
j++;
}
}
0 0
- jQuery 实现页面关键字查询
- JQuery找页面中的关键字
- Jquery搜索页面的关键字
- python实现关键字查询
- jQuery实现关键字变色
- PHP实现查询关键字描红
- JQuery实现页面跳转
- JQuery实现页面跳转
- jQuery实现页面跳转
- JQuery实现页面跳转
- jQuery实现引导页面
- jQuery实现页面搜索
- JQuery实现页面跳转
- JQuery实现页面跳转
- jQuery实现页面跳转
- jQuery实现模糊查询
- 列表分页查询的实现jquery 和Ajax的联合使用 HTML页面
- jquery查询页面表单进行提交
- 数据结构与算法笔记 —— 绪论
- Intent和Intent过滤器
- HDU 3038 - How Many Answers Are Wrong
- POJ1523--SPF--tarjan--割点--分块
- Java面试题多思路解析--有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中
- jQuery 实现页面关键字查询
- HDU 1856 More is better
- 腾讯电话面试总结
- poj 3723 Conscription(最大生成树)
- bzoj2143 飞飞侠 最短路
- verilog的小数问题
- 优雅的实现图片翻转(js实现)
- iOS开发---判断字符串为汉字或字母,并计算其数字个数
- A Famous Music Compose