웹 프론트엔드 JS 튜토리얼 jquery는 웹 페이지 검색 기능을 구현합니다.

jquery는 웹 페이지 검색 기능을 구현합니다.

Jun 28, 2018 pm 03:19 PM
찾기 기능 웹페이지

이 글은 주로 웹페이지 검색 기능의 jquery 구현을 소개합니다. 이제 특정 참조 가치가 있어 공유합니다. 도움이 필요한 친구들이 참고할 수 있습니다.

페이지에서 키워드를 찾아야 할 때 먼저 둘째, 프론트 엔드 스크립트를 통해 정확한 검색 및 위치 지정이 가능하며, 검색 후 관련 정보 표시를 확장할 수 있습니다.

이 기사에서는 12306 공식 웹사이트 검색 역 티켓 시간 페이지 효과를 모방하여 역 이름을 찾는 예를 들어 사용자가 키워드를 입력하고 검색 버튼을 클릭하거나 Enter 키를 누르면 jQuery가 일반 일치 콘텐츠를 사용하여 정확하게 일치시킵니다. 키워드를 입력하고 페이지 위치를 첫 번째 일치 위치로 빠르게 스크롤합니다. 관련 정보를 표시합니다(이 예에서 추가 정보는 역에서 티켓 판매 시작 시간입니다).

HTML

페이지에는 검색할 키워드를 입력하기 위한 입력 상자와 검색 버튼을 배치해야 하며, n

, 즉 각 기간을 포함하는 기본 콘텐츠 #content가 있어야 합니다. 시작 티켓이 판매되는 역의 이름입니다.


<p id="search_box"> 
    <input class="textbox" id="searchstr" type="text" size="10" name="searchstr" />  
    <input class="sbttn" id="search_btn" type="button" value="页内查找" /> 
</p> 
<p id="content"> 
    <p><strong>8:00 起售车站</strong><br /> 
  安阳、白城、北京西、成都东、大庆、大庆西、东莞、东莞东、惠州、金华南、缙云、九江、兰州、丽水、临汾、南充、 
齐齐哈尔、青田、日照、山海关、汕头、松原、温州、乌兰浩特、乌鲁木齐、武昌、武义、西安、永康、运城。</p> 
    ....此处省略n个p 
</p>
로그인 후 복사

CSS

페이지 콘텐츠에 대한 간단한 CSS 설정 .highlight 및 #tip은 각각 검색 결과 강조 표시 및 정보 프롬프트 상자 표시의 스타일 효과를 설정하는 데 사용됩니다. 이에 대해서는 나중에 소개하겠습니다.

#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

우선 고정 p 효과를 구현해야 합니다. 즉, 페이지를 아래로 스크롤할 때 검색에 사용되는 입력 상자와 버튼이 항상 페이지 상단에 고정되어 검색을 계속하는 것이 더 쉽습니다.


(function($) { 
    $.fn.fixp = 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);
로그인 후 복사

다음으로, fixp()를 호출합니다.


$(function(){ 
    $("#search_box").fixp({ top: 0 }); 
});
로그인 후 복사

다음으로 가장 중요한 것은 검색 기능 구현입니다. 키워드를 입력한 후 검색 버튼을 클릭하거나 Enter 키를 누르면 검색 기능인 하이라이트()가 호출됩니다.

$(function(){ 
    ... 
    $(&#39;#search_btn&#39;).click(highlight);//点击search时,执行highlight函数; 
    $(&#39;#searchstr&#39;).keydown(function (e) { 
        var key = e.which; 
        if (key == 13) highlight(); 
    }) 
    ... 
});
로그인 후 복사

highlight() 함수에서 많은 작업을 수행해야 합니다. 1. 마지막으로 강조 표시된 내용 지우기, 2. 프롬프트 정보 숨기기 및 지우기, 3. 입력 내용이 비어 있는지 확인, 4. 입력된 내용 가져오기 키워드 및 페이지 내용을 정기적으로 일치시키고 플래그 표시가 있는 결과를 찾고 검색 결과를 강조 표시합니다. 5. 검색 결과 수를 기반으로 프롬프트 정보의 내용과 위치 오프셋을 결정하고 프롬프트를 정확하게 찾아 표시합니다. 정보. 구체적인 코드를 참고하세요:

$(function(){ 
    ... 
    var i = 0; 
    var sCurText; 
    function highlight(){ 
        clearSelection();//先清空一下上次高亮显示的内容; 
        var flag = 0; 
        var bStart = true; 
        $(&#39;#tip&#39;).text(&#39;&#39;); 
        $(&#39;#tip&#39;).hide(); 
        var searchText = $(&#39;#searchstr&#39;).val(); 
        var _searchTop = $(&#39;#searchstr&#39;).offset().top+30; 
        var _searchLeft = $(&#39;#searchstr&#39;).offset().left; 
        if($.trim(searchText)==""){ 
            showTips("请输入查找车站名",_searchTop,3,_searchLeft); 
            return; 
        } 
        //查找匹配 
        var searchText = $(&#39;#searchstr&#39;).val();//获取你输入的关键字; 
        var regExp = new RegExp(searchText, &#39;g&#39;);//创建正则表达式,g表示全局的,如果不用g, 
                  //则查找到第一个就不会继续向下查找了; 
        var content = $("#content").text(); 
        if (!regExp.test(content)) { 
            showTips("没有找到要查找的车站",_searchTop,3,_searchLeft); 
            return; 
        } else { 
            if (sCurText != searchText) { 
                i = 0; 
                sCurText = searchText; 
             } 
        } 
        //高亮显示 
        $(&#39;p&#39;).each(function(){ 
            var html = $(this).html(); 
            //将找到的关键字替换,加上highlight属性; 
            var newHtml = html.replace(regExp, &#39;<span class="highlight">&#39;+searchText+&#39;</span>&#39;); 
            $(this).html(newHtml);//更新; 
            flag = 1; 
        }); 
        //定位并提示信息 
        if (flag == 1) { 
            if ($(".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(); 
                if (_left > $(document).width() - _tipWidth) { 
                     _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; 
                $(&#39;#tip&#39;).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(){ 
        $(&#39;p&#39;).each(function(){ 
            //找到所有highlight属性的元素; 
            $(this).find(&#39;.highlight&#39;).each(function(){ 
                $(this).replaceWith($(this).html());//将他们的属性去掉; 
            }); 
        }); 
}
로그인 후 복사

마지막으로 표시하는 데 사용되는 showTips() 함수를 추가합니다. 검색 키워드 검색 결과 프롬프트 정보를 입력합니다.

$(function(){ 
    var tipsp = &#39;<p class="tipsClass"></p>&#39;;  
    $( &#39;body&#39; ).append( tipsp ); 
    function showTips( tips, height, time,left ){  
        var windowWidth = document.documentElement.clientWidth;  
        $(&#39;.tipsClass&#39;).text(tips); 
        $( &#39;p.tipsClass&#39; ).css({  
        &#39;top&#39; : height + &#39;px&#39;,  
        &#39;left&#39; :left + &#39;px&#39;,  
        &#39;position&#39; : &#39;absolute&#39;,  
        &#39;padding&#39; : &#39;8px 6px&#39;,  
        &#39;background&#39;: &#39;#000000&#39;,  
        &#39;font-size&#39; : 14 + &#39;px&#39;,  
        &#39;font-weight&#39;: 900, 
        &#39;margin&#39; : &#39;0 auto&#39;,  
        &#39;text-align&#39;: &#39;center&#39;,  
        &#39;width&#39; : &#39;auto&#39;,  
        &#39;color&#39; : &#39;#fff&#39;,  
        &#39;border-radius&#39;:&#39;2px&#39;,  
        &#39;opacity&#39; : &#39;0.8&#39; , 
        &#39;box-shadow&#39;:&#39;0px 0px 10px #000&#39;, 
        &#39;-moz-box-shadow&#39;:&#39;0px 0px 10px #000&#39;, 
        &#39;-webkit-box-shadow&#39;:&#39;0px 0px 10px #000&#39; 
        }).show();  
        setTimeout( function(){$( &#39;p.tipsClass&#39; ).fadeOut();}, ( time * 1000 ) );  
    }  
});
로그인 후 복사

위 내용은 모두의 학습에 도움이 되기를 바랍니다. 더 많은 관련 내용은 PHP 중국어 홈페이지를 주목해주세요!

관련 권장사항:

화면을 클릭하면 jQuery 모바일의 머리글과 바닥글이 사라지는 문제를 해결하는 방법

JQuery에서 구현한 자동 이미지 및 텍스트 캐러셀 효과 플러그인

위 내용은 jquery는 웹 페이지 검색 기능을 구현합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Edge 브라우저에서 웹페이지를 데스크톱에 바로가기로 보내는 방법은 무엇입니까? Edge 브라우저에서 웹페이지를 데스크톱에 바로가기로 보내는 방법은 무엇입니까? Mar 14, 2024 pm 05:22 PM

Edge 브라우저에서 웹 페이지를 바탕 화면에 바로 가기로 보내는 방법은 무엇입니까? 많은 사용자들이 액세스 페이지를 직접 열 수 있는 편의를 위해 자주 사용하는 웹 페이지를 데스크탑에 바로가기로 표시하고 싶어하지만 어떻게 해야 하는지 알지 못합니다. 이 문제에 대해 이번 호의 편집자는 다음과 같은 내용을 공유합니다. 대다수의 사용자에게 솔루션을 제공하는 방법에 대해 알아보겠습니다. 오늘의 소프트웨어 튜토리얼에서 공유된 내용을 살펴보겠습니다. Edge 브라우저에서 웹 페이지를 데스크탑으로 보내는 바로 가기 방법: 1. 소프트웨어를 열고 페이지에서 "..." 버튼을 클릭합니다. 2. 드롭다운 메뉴 옵션의 "애플리케이션"에서 "이 사이트를 애플리케이션으로 설치"를 선택합니다. 3. 마지막으로 팝업창에서 클릭해주세요.

웹페이지가 열리지 않는 이유는 무엇입니까? 웹페이지가 열리지 않는 이유는 무엇입니까? Jun 26, 2023 am 11:49 AM

웹 페이지를 열 수 없는 이유는 다음과 같습니다: 1. 컴퓨터의 로컬 연결이 비활성화되었습니다. 2. 전화 접속 인터넷 계정과 비밀번호가 잘못 입력되었습니다. 3. 라우터 오류 또는 라우터 설정에 문제가 있습니다. ; 4. DNS 오류로 인해 IE가 웹 페이지를 열 수 없습니다. 5. 호스트 파일이 수정되었기 때문에 IE가 웹 페이지를 열 수 없습니다. 획득.

JavaScript를 활용한 웹 투표 시스템 개발 JavaScript를 활용한 웹 투표 시스템 개발 Aug 09, 2023 pm 01:30 PM

JavaScript를 사용하여 웹 투표 시스템 개발 개요: 인터넷의 급속한 발전으로 인해 온라인 투표는 대중의 의견을 수집하고 의사결정을 내리는 편리하고 빠른 방법이 되었습니다. 이 기사에서는 JavaScript를 사용하여 사용자가 옵션을 선택하고 투표를 제출할 수 있는 간단한 웹 투표 시스템을 개발하는 방법을 소개합니다. 소개: 웹 투표 시스템은 웹 페이지에 여러 옵션을 표시하고 사용자가 선택할 수 있도록 하는 프로그램입니다. 선거 투표, 제품 설문 조사, 의견 수집 등 다양한 시나리오에서 사용할 수 있습니다. 이 기사

웹 페이지에 접속할 수 없는 경우 대처 방법 웹 페이지에 접속할 수 없는 경우 대처 방법 Sep 06, 2023 am 09:36 AM

접근할 수 없는 웹 페이지에 대한 해결 방법에는 네트워크 연결 확인, 브라우저 캐시 지우기, 웹 페이지 주소 확인, 다른 브라우저 사용 시도, 서버 상태 확인, 도메인 이름 확인 확인, 방화벽 및 보안 설정 확인, 웹사이트 관리자에게 문의 등이 있습니다. . 자세한 소개: 1. 네트워크 연결이 정상적인지 확인하십시오. 다른 웹 페이지를 열거나 다른 장치를 사용하여 액세스하여 다른 웹 페이지에 정상적으로 액세스할 수 있는지 확인할 수 있습니다. 2. 브라우저 캐시를 지우면 웹페이지가 로드되지 않을 수 있습니다.

웹 페이지 자동 새로 고침을 설정하는 방법 웹 페이지 자동 새로 고침을 설정하는 방법 Oct 26, 2023 am 10:52 AM

웹 페이지의 자동 새로 고침을 설정하려면 HTML "meta" 태그, JavaScript "setTimeout" 함수, "setInterval" 함수 또는 HTTP "Refresh" 헤더를 사용할 수 있습니다. 자세한 소개: 1. HTML 문서의 "<head>" 태그에서 "meta" 태그를 사용하여 웹 페이지의 자동 새로 고침을 설정할 수 있습니다. 2. "setTimeout" " JavaScript 등의 기능

웹페이지의 이미지를 로드할 수 없으면 어떻게 해야 합니까? 6가지 솔루션 웹페이지의 이미지를 로드할 수 없으면 어떻게 해야 합니까? 6가지 솔루션 Mar 15, 2024 am 10:30 AM

일부 네티즌들은 브라우저 웹페이지를 열었을 때 웹페이지의 사진이 오랫동안 로드되지 않는다는 사실을 발견했습니다. 네트워크가 정상인지 확인했는데 무엇이 문제인가요? 아래 편집기에서는 웹 페이지 이미지를 로드할 수 없는 문제에 대한 6가지 해결 방법을 소개합니다. 웹페이지 이미지를 로드할 수 없습니다: 1. 인터넷 속도 문제 웹페이지에 이미지가 표시되지 않습니다. 이는 컴퓨터의 인터넷 속도가 상대적으로 느리고 컴퓨터에 열려 있는 소프트웨어가 더 많기 때문일 수 있습니다. 로딩 시간 초과로 인해 사진이 표시되지 않을 수 있습니다. 네트워크 속도를 차지하는 소프트웨어를 끄고 작업 관리자에서 확인할 수 있습니다. 2. 방문자가 너무 많으면 웹페이지에 사진이 표시되지 않는 경우, 우리가 방문한 웹페이지가 동시에 방문되었기 때문일 수 있습니다.

네트워크 연결은 정상인데 브라우저가 웹페이지에 접근할 수 없는 이유 네트워크 연결은 정상인데 브라우저가 웹페이지에 접근할 수 없는 이유 Feb 19, 2024 pm 03:45 PM

브라우저에서 웹페이지를 열 수 없지만 네트워크는 정상입니다. 가능한 이유는 다양합니다. 이 문제가 발생하면 단계별로 조사하여 구체적인 원인을 파악하고 문제를 해결해야 합니다. 먼저, 웹페이지가 열리지 않는 현상이 특정 브라우저에서만 나타나는지, 아니면 모든 브라우저에서 웹페이지를 열 수 없는지 확인하세요. 하나의 브라우저에서만 웹 페이지를 열 수 없는 경우 Google Chrome, Firefox 등과 같은 다른 브라우저를 사용하여 테스트해 볼 수 있습니다. 다른 브라우저에서 페이지를 올바르게 열 수 있다면 해당 특정 브라우저에 문제가 있을 가능성이 높습니다.

웹페이지가 열리지 않는 경우 대처 방법 웹페이지가 열리지 않는 경우 대처 방법 Feb 21, 2024 am 10:24 AM

웹 페이지가 열리지 않는 문제를 해결하는 방법 인터넷의 급속한 발전으로 인해 사람들은 정보를 얻고, 의사소통하고, 오락을 즐기기 위해 인터넷에 점점 더 의존하고 있습니다. 그러나 때때로 웹 페이지가 열리지 않는 문제에 직면하여 많은 문제를 야기합니다. 이 문서에서는 웹 페이지가 열리지 않는 문제를 해결하는 데 도움이 되는 몇 가지 일반적인 방법을 소개합니다. 먼저 웹페이지를 열 수 없는 이유를 파악해야 합니다. 가능한 원인으로는 네트워크 문제, 서버 문제, 브라우저 설정 문제 등이 있습니다. 다음은 몇 가지 해결 방법입니다. 네트워크 연결을 확인하세요. 먼저, 다음이 필요합니다.

See all articles