html页面用js中实现查找功能

今天先说一个这几天做的功能,就是html页面的查找功能。 这个功能主要是实现在html查找框内输入字符,之后按后面的上一个下一个按钮,会自动把查询区域内的匹配字符用特殊的样式标记,之后可以继续按上一个下一个按钮把按照顺序浏览匹配字符,并把当前匹配的字符用另一种样式与其他匹配字符加以区别。付有html代码哦!

样式演示:

@WG(NDK33XF7CN7R~]85ZI5.png

代码演示:

html

script

立即学习“前端免费学习笔记(深入)”;

    //搜索功能        var oldKey0 = "";        var index0 = -1;var oldCount0 = 0;        var newflag = 0;        var currentLength = 0;        function wordSearch(flg) {            var key = $("#key").val(); //取key值            if (!key) {                return; //key为空则退出            }            getArray();            focusNext(flg);        }        function focusNext(flg) {            if (newflag == 0) {//如果新搜索,index清零                index0 = 0;            }            if (!flg) {                if (oldCount0 != 0) {//如果还有搜索                    if (index0 < oldCount0) {//左边如果没走完,走左边                        focusMove(index0);                        index0++;                    } else if (index0 == oldCount0) {//都走完了                        index0 = 0;                        focusMove(index0);                        index0++;                    }                    else {                        index0 = 0;//没确定                        focusMove(index0);                        index0++;                    }                }            } else {                if (oldCount0 != 0) {//如果还有搜索                    if (index0  0) {//左边如果没走完,走左边                        index0--;                        focusMove(index0);                    } else if (index0 == 0) {//都走完了                        index0 = oldCount0;                        index0--                        focusMove(index0);                    }                }            }        }        function getArray() {            newflag = 1;            $(".contrast .result").removeClass("res");            var key = $("#key").val(); //取key值            if (!key) {                oldKey0 = "";                return; //key为空则退出            }            if (oldKey0 != key || $(".current").length != currentLength) {                //重置                index0 = 0;                var index = 0;                $(".contrast .result").each(function () {                    $(this).replaceWith($(this).html());                });                pos0 = new Array();                if ($(".contrast-wrap").hasClass("current")) {                    currentLength = $(".current").length;                    $(".current .contrast").each(function () {                        $(this).html($(this).html().replace(new RegExp(key, "gm"), "" + key + "")); // 替换                    });                } else {                    $(".contrast-wrap").addClass('current');                    currentLength = $(".current").length;                    $(".contrast").each(function () {                        $(this).html($(this).html().replace(new RegExp(key, "gm"), "" + key + "")); // 替换                    });                }                //$("#key").val(key);                oldKey0 = key;                //$(".contrast .result").each(function () {                //    $(this).parents('.contrast-wrap').addClass('current');                //    pos0.push($(this).offset().top);                //});                // pos0.push($(".contrast .result:eq(2)").offset().top - $(".contrast .result:eq(2)").parents(".contrast").offset().top);                oldCount0 = $(".contrast .result").length;                newflag = 0;            }        }        function focusMove(index0) {            $(".contrast .result:eq(" + index0 + ")").parents('.contrast-wrap').addClass('current');            $(".contrast .result:eq(" + index0 + ")").addClass("res");            var top = $(".contrast .result:eq(" + index0 + ")").offset().top + $(".contrast .result:eq(" + index0 + ")").parents(".contrast").scrollTop();            var intop = top - $(".contrast .result:eq(" + index0 + ")").parents(".contrast").offset().top;            $(".contrast .result:eq(" + index0 + ")").parents(".contrast").animate({ scrollTop: intop }, 200);            if ($(".contrast .result:eq(" + index0 + ")").parents(".contrast").scrollTop() == 0) {                $("html, body").animate({ scrollTop: top - 200 }, 200);            } else {                $("html, body").animate({ scrollTop: $(".contrast .result:eq(" + index0 + ")").parents(".contrast").offset().top - 200 }, 200);            }        }        $('#key').change(function () {            if ($('#key').val() == "") {                index0 = 0;                $(".contrast .result").each(function () {                    $(this).replaceWith($(this).html());                });                oldKey0 = "";            }        });    

接下来记一下实现原理:

首先先把上一次的查询结果清除掉,然后根据key的值,用正则表达式把区域内所有匹配的字符全都加上特殊的样式,比如方法中就全部加了一个类名为result的span标签,用odKey0变量记录key的值(下次再进入先比较如果一样的话说明是要看下一个或者上一个的内容,就不用在进入用正则表达式匹配了),oldCount0记录总共查询出来的个数,newflag置0(如果不是初次查询newflag为1)。

接着进入getNext方法,flg表示用户按下的是上一个还是下一个按钮,用index0记录当前查看的是哪一个匹配字符,与oldCount0比较,确定是递增或递减还是置0(如果大于oldCount0或者小于0,就要重新开始)。

focusMove方法就是使页面定位到当前元素的操作。

相关推荐:

HTML怎么实现数字焦点图轮播代码

html里怎么插入图片

HTML里DIV相互重叠怎么办

HTML里怎么使用margin 0 auto

以上就是html页面用js中实现查找功能的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1545284.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月21日 16:49:02
下一篇 2025年12月21日 16:49:10

相关推荐

  • html文字怎么竖排显示

    有些时候我们需要一段文字从上到下竖着显示排班,那么在css里需要怎么操作才能让文字在网页端是竖排显示呢?今天来给大家解答一下这个疑惑 有时我们需要一段文字进行从上到下竖列排版,我们知道CSS样式中有一样式可以让其竖列排版,但所有浏览器不全兼容,逼不得已放弃。但有2中方法对文字字体实现竖排显示,在接下…

    好文分享 2025年12月21日
    000
  • HTML的语言编码有哪些

    在html里,编码可导致浏览者通过ie时候网页乱码,也可以导致div+css的兼容性hack,编码非常的重要,一般编码的位置放在html网页中的head>和中间。今天我们就介绍一下关于编码的知识。 一般这段网页编码放在html网页中的 和中间。 html编码样式 通过改变charset=utf…

    好文分享 2025年12月21日
    000
  • html的网页结构由哪些部分组成

    我们都知道,开发一个网页的时候一定是要先布局网页的结构和组成部分,那么我们有哪些部分需要注意呢?下面给大家总结归纳一下。 首先,html页面是静态的从头到尾没有程序的执行是纯的html语言,是不经过服务器处理就直接送出给浏览器呈现给浏览者。 而其他后缀的结尾的网页相对来说就是动态网页页面,动态页面是…

    好文分享 2025年12月21日
    000
  • html的绝对路径和相对路径怎么使用

    当我们引用文件的时候,每一个路径都是不同的,今天我们就来讨论一下绝对路径和相对路径的共同以及不同之处,让我们以后能够分清引用路径的利弊。 相对路径:以引用文件之网页所在位置为参考基础,而建立出的目录路径。因此,当保存于不同目录的网页引用同一个文件时,所使用的路径将不相同,故称之为相对。 绝对路径:以…

    2025年12月21日 好文分享
    000
  • html里的if注释怎么使用

    我们在css布局里常常会用到ie,css,hack,ie的条件注释会起到很大的作用,那么今天我们就说一下怎么使用if条件注释。 以小于符号+叹号+两个减号开始 两个减号大于符号结束构成(字符均为英文小写输入),而注解注释内容放入其中。 一般注释,我们不能使用浏览器看见注解内容,只能通过html源代码…

    好文分享 2025年12月21日
    000
  • html的标签内用css操作style属性

    在html的标签内使用style属性是为了方便我们直接使用css样式。这样我们在改对象的时候可以加入css样式。比较方便 style语法结构 style=”css样式” 常见标签内使用style   一般的html标签都可以加入style属性直接使用css样式。比如 立即学习…

    好文分享 2025年12月21日
    000
  • html里div居中需要注意哪些

    很多人有这样的疑惑。当我们在布局一张网页时,通常网页主体框架是居中于浏览器中的。那么如果想要实现最外层div水平居中那么肯定需要单独设置。设置div居中需要注意哪些事项呢?今天就来给大家介绍一下。 假如最外层DIV盒子的CSS命名为“#divcss5”,这个时候为了兼容各大浏览器实现最外层的这个盒子…

    好文分享 2025年12月21日
    000
  • html里的br,p和DIV有什么区别

    很多人弄不明白,br,p和div都是标签,他们之前有什么区别?我想怎么用都可以吗?并不是这样的,今天就来给大家详细的说一下br,p,div这三种标签有什么区别 div和p是成对组合闭合标签; 是单一的闭合标签。 以 开始, 结束; 以 开始, 立即学习“前端免费学习笔记(深入)”; 结束 小例: 内…

    好文分享 2025年12月21日
    000
  • html里怎么插入图片

    在html里我们常常会插入图片,那么插入图片需要怎么实现?让html显示图片有什么需要什么主意的方面吗?今天我们就来说一下怎样在html插入图片 在html插入图片 让图片显示需要HTML标签来实现,使用img标签即可实现。 html图片标签语法     img介绍: 立即学习“前端免费学习笔记(深…

    好文分享 2025年12月21日
    000
  • 怎么选择合适的HTML标签

    在divcss布局时会遇到一个问题,那就是如何选择html标签布局,但对于非新手csser来说非常简单,但对于刚刚学习或刚刚入手css制作来说却是一个无形问题。那么我们今天就来归纳一下,什么情况下用什么标签。 我们在布局的时候总是会遇到各种各样的问题,那么这里大家简单介绍如何选择HTML标签: 1、…

    好文分享 2025年12月21日
    000
  • HTML里怎么使用margin 0 auto

    margin是一个很重要的属性,那么在html里怎么使用margin 0 auto呢?我们今天就好好介绍一下margin:0 auto,下面给大家举一个小列子 margin设置对象外边距,如果我们给DIV设置一条边框线(border)样式后,在DW软件里即可看出margin设置值其实是在边框外距离,…

    好文分享 2025年12月21日
    000
  • HTML里DIV相互重叠怎么办

    我们常常在做网页的时候发现一个问题,那就是div覆盖了div,这样就出现了div的盒子重叠覆盖导致内容没有出现这么一个问题,那么我们今天就来给大家介绍一下产生原因以及解决方法。 可能您遇到过上下结构的布局,下面DIV内容重叠上面DIV内容上,也可能下面内容覆盖掉上面DIV布局,形成DIV与DIV覆盖…

    好文分享 2025年12月21日
    000
  • html 的标签需要怎么使用

    在html5之前的版本大家可能有用div标签布局网页的习惯,但是h5在div标签的基础上增加了header标签元素,也就是我们说的头部标签,以往我们在布局中常常把网页分为头部,内容,底部,现在已经有系统的标签来帮我们规划,也是方便了很多,那么这个header标签需要怎么使用呢?今天我们就来好好的研究…

    好文分享 2025年12月21日
    000
  • 在HTML里DIV怎么使用

    div作为我们html网页中常用的标签,它的默认样式是单独占一行,如果创建一个div,那么其css样式需要重新赋予。像div宽度、高度等样式设置、内部字体大小、字体颜色这些,都是需要通过css来实现。 通俗认识div,div作用就是实现布局、实现对内容样式控制、实现各种各样的布局效果。 DIV的用法…

    好文分享 2025年12月21日
    000
  • 在HTML里p段落行高行距怎么设置

    怎么样设置p段落之间的上下间距?哪些样式能够控制 之间行距距离呢?css行高怎么写?今天我们来把这个p段落研究个明明白白,让大家彻底掌握p行距行高样式。 那么我们为大家介绍如何通过CSS样式设置p段落上下行距,而p是文章段落标签,控制p段落行距的css div属性有: 1、css line-heig…

    2025年12月21日
    000
  • HTML里空格字符怎么输入

    html里空格字符怎么输入?今天和大家说一下html网页代码里的多个空格需要怎么输入。怎么在网页代码里输入多个空格。 我们知道这HTML网页中插入多个空格间隔是需要特殊字符编码的。如果是直接敲入多个空格键,虽然看似代码中有了多个空格效果,但在浏览器中还是只有1个空格的间隔位置。 接下来DIVCSS5…

    好文分享 2025年12月21日
    000
  • DOCTYPE html 很重要

    默认情况下,ff和ie的解释标准是不一样的,也就是说,如果一个网页没有声明doctype,它就会以默认的doctype解释下面的html。在同 一种标准下,不同浏览器的解释模型都有所差异,如果声明标准不同,不用我说,您自己想就可以了。学习网页标准,浏览器兼容,从哪里开始您自己决定,但是, 请认识do…

    好文分享 2025年12月21日
    000
  • HTML里table标签的使用方法

    html的table元素是包含tr td th表格标签元素的,那么今天我们就来给大家详细介绍一下表格的布局以及语法,最后是对表格的总结经验,大家也可以借鉴一下 表格布局篇,认识html表格基础语法,认识table表格结构语法,通过html table tr td、html table tr th表格…

    好文分享 2025年12月21日
    000
  • html的网页源代码怎么查看

    既然我们是前端工作者,那么我们一定要学会查看html的网页源代码,今天就给大家介绍俩种不同的查看网页源代码的方法。 网页源代码是什么?通俗了解,通过html语法规则让图片、文字等内容,在浏览器显示出来的代码我们称之为网页源代码。 源代码(源文件)是指网页的html代码,这里可以将CSS代码也称为CS…

    好文分享 2025年12月21日
    000
  • HTML网页字体大小的设置

    html网页字体大小的设置有很多种方法,今天给大家主要介绍俩种,一种是css设置html中字体大小,另外一种是html标签里设置style属性设置字体大小。 接下来通过html案例介绍字体大小设置教程。 html font标签设置字体大小 在css之前html中文字设置字体,通常直接对文字使用fon…

    好文分享 2025年12月21日
    000

发表回复

登录后才能评论
关注微信