使用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 相关文章推荐
js脚本学习 比较实用的基础
Sep 07 Javascript
jQuery技巧总结
Jan 01 Javascript
jQuery EasyUI API 中文文档 - Tree树使用介绍
Nov 19 Javascript
JavaScript Math.ceil 方法(对数值向上取整)
Jan 09 Javascript
Node.js Streams文件读写操作详解
Jul 04 Javascript
深入浅析javascript中的作用域(推荐)
Jul 19 Javascript
url传递的参数值中包含&amp;时,url自动截断问题的解决方法
Aug 02 Javascript
RGB和YUV 多媒体编程基础详细介绍
Nov 04 Javascript
JS实现Ajax的方法分析
Dec 20 Javascript
javascript实现Emrips反质数枚举的示例代码
Dec 06 Javascript
详解小程序原生使用ES7 async/await语法
Aug 06 Javascript
layer 关闭指定弹出层的例子
Sep 25 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运行出现Call to undefined function curl_init()的解决方法
2010/11/02 PHP
PHP学习笔记 用户注册模块用户类以及验证码类
2011/09/20 PHP
关于UEditor编辑器远程图片上传失败的解决办法
2012/08/31 PHP
使用php将某个目录下面的所有文件罗列出来的方法详解
2013/06/21 PHP
PHP删除HTMl标签的三种解决方法
2013/06/30 PHP
php的curl封装类用法实例
2014/11/07 PHP
PHP魔术方法以及关于独立实例与相连实例的全面讲解
2016/10/18 PHP
微信开发之获取JSAPI TICKET
2017/07/07 PHP
Javascript &amp; DHTML 实例编程(教程)(三)初级实例篇1—上传文件控件实例
2007/06/02 Javascript
node.js中的fs.writeSync方法使用说明
2014/12/15 Javascript
scrollWidth,clientWidth,offsetWidth的区别
2015/01/13 Javascript
JS简单模拟触发按钮点击功能的方法
2015/11/30 Javascript
JS获取多维数组中相同键的值实现方法示例
2017/01/06 Javascript
javascript实现简易计算器
2017/02/01 Javascript
详解Weex基于Vue2.0开发模板搭建
2017/03/20 Javascript
第一次记录Bootstrap table学习笔记(1)
2017/05/18 Javascript
基于Vue过渡状态实例讲解
2017/09/14 Javascript
vue-cli脚手架config目录下index.js配置文件的方法
2018/03/13 Javascript
vue.js轮播图组件使用方法详解
2018/07/03 Javascript
vue项目中实现的微信分享功能示例
2019/01/21 Javascript
原生js拖拽功能制作滑动条实例代码
2021/02/05 Javascript
[07:31]DOTA2卡尔工作室 英雄介绍主宰篇
2013/06/25 DOTA
ubuntu安装mysql pycharm sublime
2018/02/20 Python
python实现跨excel的工作表sheet之间的复制方法
2018/05/03 Python
Python解决两个整数相除只得到整数部分的实例
2018/11/10 Python
python读取几个G的csv文件方法
2019/01/07 Python
python flask 如何修改默认端口号的方法步骤
2019/07/12 Python
Python面向对象中类(class)的简单理解与用法分析
2020/02/21 Python
解析pip安装第三方库但PyCharm中却无法识别的问题及PyCharm安装第三方库的方法教程
2020/03/10 Python
html5 跨文档消息传输示例探讨
2013/04/01 HTML / CSS
HTML5页面中尝试调起APP功能
2017/09/12 HTML / CSS
委托证明的格式
2014/01/10 职场文书
生日寄语大全
2014/04/08 职场文书
房产电话营销开场白
2015/05/29 职场文书
开工典礼致辞
2015/07/29 职场文书
导游词之西江千户苗寨
2019/12/24 职场文书