Home Web Front-end JS Tutorial Example sharing of jquery implementation of web page search function_jquery

Example sharing of jquery implementation of web page search function_jquery

May 16, 2016 pm 05:00 PM
Find function Web page

This article takes the search for the station name as an example, imitating the effect of the 12306 official website to find the station ticket time page. When the user enters a keyword and clicks the search button or presses the Enter key, jQuery matches the content accurately through regular matching, and quickly The page position scrolls to the first matching position and displays relevant information (in this example, the additional information is the station's ticket sales start time).

HTML

The page needs to place an input box to enter the keywords to be searched, and a search button, and then the main content #content, which contains n < p>, that is, the name of the station where tickets are sold in each time period.

Copy code The code is as follows:



On sale from 8:00 Station

Anyang, Baicheng, Beijing West, Chengdu East, Daqing, Daqing West, Dongguan, Dongguan East, Huizhou, Jinhua South, Jinyun, Jiujiang, Lanzhou, Lishui, Linfen, Nanchong,
Qiqihar, Qingtian, Rizhao, Shanhaiguan, Shantou, Songyuan, Wenzhou, Ulanhot, Urumqi, Wuchang, Wuyi, Xi'an, Yongkang, Yuncheng.


....n ps are omitted here

CSS

Simple CSS settings for page content. .highlight and #tip are used to set the style effects of search result highlighting and information prompt box display respectively. The following We will introduce it.

Copy code The code is as follows:

#search_box { background: white; opacity: 0.8; text -align:right }
#search_btn { background: #0f79be; margin-top: 6px; border-radius: 2px; border: 0px;
width: 100px; line-height: 24px; color: white; }
#searchstr { font-size: 14px; height: 20px; }
.highlight { background: yellow; color: red; }
#tip { background: #ffc; border: 1px solid #999; width: 110px; text-align: center;
display: none; font-size: 12px; }

jQuery

First of all, we need to achieve the effect of a fixed div, that is, when the page is scrolled down, the input box and button used for search are always fixed at the top of the page, making it easier to continue searching.

Copy code The code is as follows:

(function($) {
    $.fn.fixDiv = function(options) {
        var defaultVal = {
            top: 10
        };
        var obj = $.extend(defaultVal, options);
        $this = this;
        var _top = $this.offset().top;
        var _left = $this.offset().left;
        $(window).scroll(function() {
            var _currentTop = $this.offset().top;
            var _scrollTop = $(document).scrollTop();
            if (_scrollTop > _top) {
                $this.offset({
                    top: _scrollTop obj.top,
                    left: _left
                });
            } else {
                $this.offset({
                    top: _top,
                    left: _left
                });
            }
        });
        return $this;
    };
})(jQuery);

接着,我们调用fixDiv()。

 

复制代码 代码如下:

$(function(){
    $("#search_box").fixDiv({ top: 0 });
});

接下来,最关键的实现查找功能。当输入关键字后,点击查找按钮或按回车键,调用查找函数highlight()。

 

复制代码 代码如下:

$(function(){
    ...
    $('#search_btn').click(highlight);//点击search时,执行highlight函数;
    $('#searchstr').keydown(function (e) {
        var key = e.which;
        if (key == 13) highlight();
    })
    ...
});

在函数highlight()需要做很多事情,1.清空上次高亮显示内容,2.隐藏并清空提示信息,3.判断输入内容为空的情况,4.获取输入的关键字,并与页面内容进行正则匹配,并用flag标记查找到结果,将查找结果高亮显示,5.根据查找结果的数量,确定提示信息的内容和位置偏移量,准确定位并显示提示信息。请看具体代码:

复制代码 代码如下:

$(function(){
...
var i = 0;
var sCurText;
function highlight(){
clearSelection();//First Clear the last highlighted content;

var flag = 0;
var bStart = true;

$('#tip').text('');
       $('#tip').hide();
       var searchText = $('#searchstr').val(); top 30;
var _searchLeft = $('#searchstr').offset().left;
if($.trim(searchText)==""){
showTips("Please enter the search station name",_searchTop,3,_searchLeft);
                                                              ; Keywords;
var regExp = new RegExp(searchText, 'g');//Create a regular expression, g means global. If g is not used,
var regExp = new RegExp(searchText, 'g'); //The search will not continue after finding the first one. Searched downward;
var content = $("#content").text();
if (!regExp.test(content)) {
showTips("The station you were looking for was not found" ,_searchTop,3,_searchLeft);
                                                                                  sCurText = searchText;
} }
                                                                                                                                             Word replacement, add highlight attribute;
var newHtml = html.replace(regExp, '' searchText '');
                                                                                                                                     html(newHtml); //Update;
           flag = 1; $(".highlight").size() > 1) {
      var _top = $(".highlight").eq(i).offset().top $(".highlight").eq( i).height();
var _tip = $(".highlight").eq(i).parent().find("strong").text();
if(_tip==" ") _tip = $(".highlight").eq(i).parent().parent().find("strong").text();
      var _left = $(".highlight"). eq(i).offset().left;
          var _tipWidth = $("#tip").width(); 🎜>                 _left = _left - _tipWidth;                                               
                $("#tip").html(_tip).show();
                $("#tip").offset({ top: _top, left: _left });
                $("#search_btn").val("查找下一个");
            }else{
                var _top = $(".highlight").offset().top $(".highlight").height();
                var _tip = $(".highlight").parent().find("strong").text();
                var _left = $(".highlight").offset().left;
                $('#tip').show();
                $("#tip").html(_tip).offset({ top: _top, left: _left });
            }
            $("html, body").animate({ scrollTop: _top - 50 });
            i ;
            if (i > $(".highlight").size() - 1) {
                i = 0;
            }
        }
    }
      ...
});

上述代码中提到的clearSelection()函数用来清空高亮效果,代码如下:

 

复制代码 代码如下:

function clearSelection(){
        $('p').each(function(){
            //找到所有highlight属性的元素;
            $(this).find('.highlight').each(function(){
                $(this).replaceWith($(this).html());//将他们的属性去掉;
            });
        });
}

最后加上showTips()函数,该函数用来显示在输入查找关键字后的查找结果提示信息。

 

复制代码 代码如下:

$(function(){
    var tipsDiv = '
'; 
    $( 'body' ).append( tipsDiv );
    function showTips( tips, height, time,left ){ 
        var windowWidth = document.documentElement.clientWidth; 
        $('.tipsClass').text(tips);
        $( 'div.tipsClass' ).css({ 
        'top' : height 'px', 
        'left' :left 'px', 
        'position' : 'absolute', 
        'padding' : '8px 6px', 
        'background': '#000000', 
        'font-size' : 14 'px', 
        'font-weight': 900,
        'margin' : '0 auto', 
        'text-align': 'center', 
        'width' : 'auto', 
        'color' : '#fff', 
        'border-radius':'2px', 
        'opacity' : '0.8' ,
        'box-shadow':'0px 0px 10px #000',
        '-moz-box-shadow':'0px 0px 10px #000',
        '-webkit-box-shadow':'0px 0px 10px #000'
        }).show(); 
        setTimeout( function(){$( 'div.tipsClass' ).fadeOut();}, ( time * 1000 ) ); 
    } 
});
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

How to send web pages to desktop as shortcut in Edge browser? How to send web pages to desktop as shortcut in Edge browser? Mar 14, 2024 pm 05:22 PM

How to send web pages to the desktop as a shortcut in Edge browser? Many of our users want to display frequently used web pages on the desktop as shortcuts for the convenience of directly opening access pages, but they don’t know how to do it. In response to this problem, the editor of this issue will share the solution with the majority of users. , let’s take a look at the content shared in today’s software tutorial. The shortcut method of sending web pages to the desktop in Edge browser: 1. Open the software and click the "..." button on the page. 2. Select "Install this site as an application" in "Application" from the drop-down menu option. 3. Finally, click it in the pop-up window

Why can't the web page be opened? Why can't the web page be opened? Jun 26, 2023 am 11:49 AM

The reasons why the web page cannot be opened are: 1. The local connection of the computer is disabled; 2. The dial-up Internet account and password are entered incorrectly; 3. There is a router failure or a problem with the router settings; 4. IE cannot open the web page due to DNS errors. ; 5. IE cannot open the web page because the hosts file is modified; 6. IE cannot open the web page because the IP address is set incorrectly or fails to be obtained.

Develop web voting system using JavaScript Develop web voting system using JavaScript Aug 09, 2023 pm 01:30 PM

Using JavaScript to develop a web voting system Abstract: With the rapid development of the Internet, online voting has become a convenient and fast way to collect public opinions and make decisions. This article will introduce the use of JavaScript to develop a simple web voting system, which enables users to select options and submit votes. Introduction: A web voting system is a program that displays multiple options on a web page and allows users to choose. It can be used in many scenarios, such as election voting, product surveys, opinion collection, etc. This article

What to do if the web page cannot be accessed What to do if the web page cannot be accessed Sep 06, 2023 am 09:36 AM

Solutions to inaccessible web pages include checking the network connection, clearing the browser cache, checking the web page address, trying to use other browsers, checking the server status, checking the domain name resolution, checking the firewall and security settings and contacting the website administrator. Detailed introduction: 1. Check the network connection to ensure that the network connection is normal. You can try to open other web pages or use other devices to access to determine whether it is a network connection problem. If other web pages can be accessed normally, it may be a problem with the web page; 2. Clear the browser cache. The browser cache may cause the web page to fail to load, etc.

How to set up web page automatic refresh How to set up web page automatic refresh Oct 26, 2023 am 10:52 AM

To set the automatic refresh of a web page, you can use the HTML "meta" tag, the JavaScript "setTimeout" function, the "setInterval" function or the HTTP "Refresh" header. Detailed introduction: 1. Use the "meta" tag of HTML. In the "<head>" tag of the HTML document, you can use the "meta" tag to set the automatic refresh of the web page; 2. The "setTimeout" function of JavaScript, etc.

What should I do if the images on the webpage cannot be loaded? 6 solutions What should I do if the images on the webpage cannot be loaded? 6 solutions Mar 15, 2024 am 10:30 AM

Some netizens found that when they opened the browser web page, the pictures on the web page could not be loaded for a long time. What happened? I checked that the network is normal, so where is the problem? The editor below will introduce to you six solutions to the problem that web page images cannot be loaded. Web page images cannot be loaded: 1. Internet speed problem The web page cannot display images. It may be because the computer's Internet speed is relatively slow and there are more softwares opened on the computer. And the images we access are relatively large, which may be due to loading timeout. As a result, the picture cannot be displayed. You can turn off the software that consumes more network speed. You can go to the task manager to check. 2. Too many visitors. If the webpage cannot display pictures, it may be because the webpages we visited were visited at the same time.

Possible reasons why the network connection is normal but the browser cannot access the web page Possible reasons why the network connection is normal but the browser cannot access the web page Feb 19, 2024 pm 03:45 PM

The browser cannot open the web page but the network is normal. There are many possible reasons. When this problem occurs, we need to investigate step by step to determine the specific cause and solve the problem. First, determine whether the webpage cannot be opened is limited to a specific browser or whether all browsers cannot open the webpage. If only one browser cannot open the web page, you can try to use other browsers, such as Google Chrome, Firefox, etc., for testing. If other browsers are able to open the page correctly, the problem is most likely with that specific browser, possibly

What to do if the webpage cannot be opened What to do if the webpage cannot be opened Feb 21, 2024 am 10:24 AM

How to solve the problem of web pages not opening With the rapid development of the Internet, people increasingly rely on the Internet to obtain information, communicate and entertain. However, sometimes we encounter the problem that the web page cannot be opened, which brings us a lot of trouble. This article will introduce you to some common methods to help solve the problem of web pages not opening. First, we need to determine why the web page cannot be opened. Possible reasons include network problems, server problems, browser settings problems, etc. Here are some solutions: Check network connection: First, we need

See all articles