使用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 相关文章推荐
获得所有表单值的JQuery实现代码[IE暂不支持]
May 24 Javascript
jquery封装的对话框简单实现
Jul 21 Javascript
JS实现仿QQ聊天窗口抖动特效
May 10 Javascript
浅谈Cookie的生命周期问题
Aug 02 Javascript
javascript验证手机号和实现星号(*)代替实例
Aug 16 Javascript
jQuery子元素过滤选择器用法示例
Sep 09 Javascript
JavaScript中匿名函数的递归调用
Jan 22 Javascript
jQuery zTree 异步加载添加子节点重复问题
Nov 29 jQuery
浅谈Vue数据响应
Nov 05 Javascript
了解前端理论:rscss和rsjs
May 23 Javascript
vue中动态select的使用方法示例
Oct 28 Javascript
微信小程序wx.navigateTo方法里的events参数使用详情及场景
Jan 07 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 数组基础知识小结
2010/08/20 PHP
JavaScript高级程序设计
2006/12/29 Javascript
对采用动态原型方式无法展示继承机制得思考
2009/12/04 Javascript
jquery parent和parents的区别分析
2013/10/02 Javascript
jquery在项目中做复选框时遇到的一些问题笔记
2013/11/17 Javascript
开源的javascript项目Kissy介绍
2014/11/28 Javascript
基于MVC4+EasyUI的Web开发框架形成之旅之界面控件的使用
2015/12/16 Javascript
JS设置下拉列表框当前所选值的方法
2015/12/22 Javascript
JavaScript中三种异步上传文件方式
2016/03/06 Javascript
AngularJS利用Controller完成URL跳转
2016/08/09 Javascript
js判断所有表单项不为空则提交表单的实现方法
2016/09/09 Javascript
js中setTimeout的妙用--防止循环超时
2017/03/06 Javascript
Vue官网todoMVC示例代码
2018/01/29 Javascript
JavaScript中为事件指定处理程序的五种方式分析
2018/07/27 Javascript
vue3.0 CLI - 1 - npm 安装与初始化的入门教程
2018/09/14 Javascript
基于 jQuery 实现键盘事件监听控件
2019/04/04 jQuery
浅谈JS中几种轻松处理'this'指向方式
2019/09/16 Javascript
Vue如何获取数据列表展示
2019/12/11 Javascript
在Python中操作文件之truncate()方法的使用教程
2015/05/25 Python
python之Socket网络编程详解
2016/09/29 Python
Python django实现简单的邮件系统发送邮件功能
2017/07/14 Python
jupyter 使用Pillow包显示图像时inline显示方式
2020/04/24 Python
用python 绘制茎叶图和复合饼图
2021/02/26 Python
生物有机护肤品:Aurelia Probiotic Skincare
2018/01/31 全球购物
伯克斯奥特莱斯:Burkes Outlet
2019/03/30 全球购物
女性时尚网购:Chic Me
2019/07/30 全球购物
请写出char *p与"零值"比较的if语句
2014/09/24 面试题
什么是SCM(软件配置管理)
2014/08/16 面试题
酒店管理毕业生自荐信
2013/10/24 职场文书
学生个人的自我评价分享
2013/11/05 职场文书
现场施工员岗位职责
2014/03/10 职场文书
清明节演讲稿
2014/05/27 职场文书
政府法律服务方案
2014/06/14 职场文书
小班上学期幼儿评语
2014/12/30 职场文书
司机岗位职责范本
2015/04/10 职场文书
创业计划书之美容店
2019/09/16 职场文书