使用jQuery简单实现模拟浏览器搜索功能


Posted in Javascript onDecember 21, 2014

写的匆忙,示意一下,有待完善。把以下代码复制到文本文件中,把文件扩展名改为.html就可以运行了。

<html>

<head>

    <style type="text/css">

        .res

        {

            color: Red;

        }

    </style>

    <script src="jquery.min.js" type="text/javascript"></script>

    <script type="text/javascript">

        var oldKey = "";

        var index = -1;

        var pos = new Array();

        var oldCount = 0;
        function search(flg) {

            if (!flg) {

                index++;

                index = index == oldCount ? 0 : index;

            }

            else {

                index--;

                index = index < 0 ? oldCount - 1 : index;

            }
            $(".result").removeClass("res");

            $("#toresult").remove();

            var key = $("#key").val(); //取key值

            if (!key) {

                oldKey = "";

                return; //key为空则退出

            }
            if (oldKey != key) {

                //重置

                index = 0;

                $(".result").each(function () {

                    $(this).replaceWith($(this).html());

                });

                pos = new Array();
                $("body").html($("body").html().replace(new RegExp(key, "gm"), "<span id='result" + index + "' class='result'>" + key + "</span>")); // 替换
                $("#key").val(key);

                oldKey = key;

                $(".result").each(function () {

                    pos.push($(this).offset().top);

                });

                oldCount = $(".result").length;

            }
            $(".result:eq(" + index + ")").addClass("res");
            $("body").scrollTop(pos[index]);

        }

    </script>

</head>

<body>

    <div style="position: fixed; right: 20px; top: 0;">

        <input id="key" type="text" style="width: 100px;" />

        <input type="button" value="下一个" onclick="search()" />

        <input type="button" value="上一个" onclick="search(1)" />

    </div>

    <div style="height: 50px;">

    </div>

    <div style="height: 200px;">

        1待搜索的文本。

    </div>

    <div style="height: 200px;">

        2待搜索的文本。

    </div>

    <div style="height: 200px;">

        3待搜索的文本。

    </div>

    <div style="height: 200px;">

        4待搜索的文本。

    </div>

    <div style="height: 200px;">

        5待搜索的文本。

    </div>

    <div style="height: 200px;">

        10美丽的家乡。

    </div>

    <div style="height: 200px;">

        11美丽的家乡。

    </div>

    <div style="height: 200px;">

        12美丽的家乡。

    </div>

    <div style="height: 200px;">

        13美丽的家乡。

    </div>

    <div style="height: 200px;">

        14美丽的家乡。

    </div>

    <div style="height: 200px;">

        15美丽的家乡。

    </div>

</body>

</html>

这里主要是个大家提供一个思路,小伙伴们等不及的话就自己完善下吧。

Javascript 相关文章推荐
ExtJS 2.0实用简明教程之应用ExtJS
Apr 29 Javascript
半角全角相互转换的js函数
Oct 16 Javascript
让你的网站可编辑的实现js代码
Oct 19 Javascript
一个javascript图片阅览组件
Nov 09 Javascript
扩展JavaScript功能的正确方法(译文)
Apr 12 Javascript
jquery插件开发之实现md5插件
Mar 17 Javascript
Javascript 正则表达式实现为数字添加千位分隔符
Mar 10 Javascript
不想让浏览器运行javascript脚本的方法
Nov 20 Javascript
Angular.JS利用ng-disabled属性和ng-model实现禁用button效果
Apr 05 Javascript
微信小程序 实例开发总结
Apr 26 Javascript
微信小程序中实现手指缩放图片的示例代码
Mar 13 Javascript
Vue 表情包输入组件的实现代码
Jan 21 Javascript
编写简单的jQuery提示插件
Dec 21 #Javascript
不使用ajax实现无刷新提交表单
Dec 21 #Javascript
webapp框架AngularUI的demo改造之路
Dec 21 #Javascript
浅析webapp框架AngularUI的demo
Dec 21 #Javascript
AngularJS基础知识
Dec 21 #Javascript
javascript关于继承的用法汇总
Dec 20 #Javascript
jquery实现将获取的颜色值转换为十六进制形式的方法
Dec 20 #Javascript
You might like
php+mysql事务rollback&amp;commit示例
2010/02/08 PHP
浅谈php安全性需要注意的几点事项
2014/07/17 PHP
Laravel中的Auth模块详解
2017/08/17 PHP
PHP图像处理 imagestring添加图片水印与文字水印操作示例
2020/02/06 PHP
图片之间的切换
2006/06/26 Javascript
JavaScript中this关键字使用方法详解
2007/03/08 Javascript
jquery实现保存已选用户
2014/07/21 Javascript
基于javascript实现图片滑动效果
2016/05/07 Javascript
jQuery的Each比JS原生for循环性能慢很多的原因
2016/07/05 Javascript
JS本地刷新返回上一页代码
2016/07/25 Javascript
JS匿名函数实例分析
2016/11/26 Javascript
浅析webpack 如何优雅的使用tree-shaking(摇树优化)
2017/08/16 Javascript
实现两个文本框同时输入的实例
2017/09/25 Javascript
实例学习JavaScript读取和写入cookie
2018/01/29 Javascript
微信小程序实现MUI数字输入框效果
2018/01/31 Javascript
Angular 容器部署的方法
2018/04/17 Javascript
微信小程序 子级页面返回父级并把子级参数带回父级实现方法
2019/08/22 Javascript
js blob类型url的视频下载问题的解决
2019/11/29 Javascript
在 Vue 中编写 SVG 图标组件的方法
2020/02/24 Javascript
[46:44]VG vs TNC Supermajor小组赛B组败者组决赛 BO3 第一场 6.2
2018/06/03 DOTA
Python编程修改MP3文件名称的方法
2017/04/19 Python
高效使用Python字典的清单
2018/04/04 Python
tensorflow 获取变量&amp;打印权值的实例讲解
2018/06/14 Python
python3的输入方式及多组输入方法
2018/10/17 Python
Python Pandas 获取列匹配特定值的行的索引问题
2019/07/01 Python
Python企业编码生成系统总体系统设计概述
2019/07/26 Python
实例详解Python装饰器与闭包
2019/07/29 Python
Python Sphinx使用实例及问题解决
2020/01/17 Python
python使用Windows的wmic命令监控文件运行状况,如有异常发送邮件报警
2021/01/30 Python
CSS3常用的几种颜色渐变模式总结
2016/11/18 HTML / CSS
饮料业务员岗位职责
2013/12/15 职场文书
药学职务聘任书
2014/03/29 职场文书
《花木兰》教学反思
2014/04/09 职场文书
2015年维修工作总结
2015/04/25 职场文书
2015年导购员工作总结
2015/04/25 职场文书
浅谈JS和Nodejs中的事件驱动
2021/05/05 NodeJs