使用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 相关文章推荐
Whatever:hover 无需javascript让IE支持丰富伪类
Jun 29 Javascript
JavaScript限定复选框的选择个数示例代码
Aug 25 Javascript
使用jQuery快速解决input中placeholder值在ie中无法支持的问题
Jan 02 Javascript
js中实现多态采用和继承类似的方法
Aug 22 Javascript
Bootstrap导航简单实现代码
Mar 06 Javascript
微信小程序 五星评分的实现实例
Aug 04 Javascript
微信上传视频文件提示(推荐)
Nov 22 Javascript
layui关闭层级、简单监听的实例
Sep 06 Javascript
解决vue v-for src 图片路径问题 404
Nov 12 Javascript
小程序使用分包的示例代码
Mar 23 Javascript
vue2.x 对象劫持的原理实现
Apr 19 Javascript
vue 给数组添加新对象并赋值
Apr 20 Vue.js
编写简单的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时间戳使用实例代码
2008/06/07 PHP
Laravel 批量更新多条数据的示例
2017/11/27 PHP
Js 弹出框口并返回值的两种常用方法
2010/12/30 Javascript
js 可拖动列表实现代码
2011/12/13 Javascript
Jquery绑定事件(bind和live的区别介绍)
2013/08/23 Javascript
javascript实现网页屏蔽Backspace事件,输入框不屏蔽
2015/07/21 Javascript
javascript实现对表格元素进行排序操作
2015/11/18 Javascript
JavaScript事件用法浅析
2016/10/31 Javascript
vue.js指令v-for使用及索引获取
2016/11/03 Javascript
JavaScript实现的搜索及高亮显示功能示例
2017/08/14 Javascript
JS实现不用中间变量temp 实现两个变量值得交换方法
2018/02/04 Javascript
浅谈JavaScript 代码整洁之道
2018/10/23 Javascript
jQuery中event.target和this的区别详解
2020/08/13 jQuery
antd配置config-overrides.js文件的操作
2020/10/31 Javascript
[07:40]DOTA2每周TOP10 精彩击杀集锦vol.4
2014/06/25 DOTA
Python中绑定与未绑定的类方法用法分析
2016/04/29 Python
Python正则表达式教程之三:贪婪/非贪婪特性
2017/03/02 Python
详谈Python高阶函数与函数装饰器(推荐)
2017/09/30 Python
Python  unittest单元测试框架的使用
2018/09/08 Python
详解Python数据分析--Pandas知识点
2019/03/23 Python
PYQT5实现控制台显示功能的方法
2019/06/25 Python
python中for循环把字符串或者字典添加到列表的方法
2019/07/20 Python
python实现H2O中的随机森林算法介绍及其项目实战
2019/08/29 Python
python读写Excel表格的实例代码(简单实用)
2019/12/19 Python
Python3 hashlib密码散列算法原理详解
2020/03/30 Python
Anaconda配置pytorch-gpu虚拟环境的图文教程
2020/04/16 Python
python如何快速生成时间戳
2020/07/21 Python
css3一个简易的 LED 数字时钟实现方法
2020/01/15 HTML / CSS
软件配置管理有什么好处
2015/04/15 面试题
医学生自荐信
2013/12/03 职场文书
预备党员的自我评价
2014/03/12 职场文书
《长城和运河》教学反思
2014/04/14 职场文书
迁户口计划生育证明
2014/10/19 职场文书
同学会邀请函模板
2015/01/30 职场文书
初中班长竞选稿
2015/11/20 职场文书
2016年村党支部公开承诺书
2016/03/24 职场文书