欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JavaScript實現(xiàn)搜索的數(shù)據(jù)顯示

 更新時間:2021年10月26日 11:50:52   作者:wait......  
這篇文章主要為大家詳細介紹了JavaScript實現(xiàn)搜索的數(shù)據(jù)顯示,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了JavaScript實現(xiàn)搜索的數(shù)據(jù)顯示代碼,供大家參考,具體內(nèi)容如下

今天的效果如下:

這個案例的要點有兩個:

是使用CSS顯示樣式

是使用js比較輸入的內(nèi)容和數(shù)組中的內(nèi)容使得包含輸入內(nèi)容的數(shù)據(jù)顯示出來

首先來看CSS顯示樣式的難點:

兩個div的接觸部分,要想讓它們無縫隙接觸,就需要設(shè)置float:left;

兩個div盒子左右兩側(cè)的圓角邊框,我們需要分別為border-top-left-radius等設(shè)置值,這樣就大致得到了搜索框的樣式,剩下的細節(jié)可以去代碼中查看~

接著來看JS進行比較的部分:

總的思想呢,就是當輸入內(nèi)容時使下方顯示搜索框,顯示匹配的數(shù)據(jù);不輸入或輸入數(shù)據(jù)不匹配時,不顯示數(shù)據(jù)或顯示暫無數(shù)據(jù);搜索框失去焦點時使下方的搜索框消失

1、當我們在搜索框中輸入內(nèi)容時,我們可以調(diào)用onkeyup函數(shù),先使下方的搜索框display屬性值為block;
然后在其中調(diào)用forEach遍歷數(shù)組中的所有數(shù)據(jù),通過value獲得輸入的內(nèi)容,調(diào)用indexOf將該內(nèi)容與數(shù)組中的數(shù)據(jù)進行比較,若有匹配項的話,其返回值是數(shù)組中數(shù)據(jù)的下標,否則為-1;
若有匹配項的話,我們可以利用innerHTML,在下面的顯示框中添加p標簽,p中的內(nèi)容是匹配的數(shù)據(jù);如果沒有就返回內(nèi)容是‘暫無數(shù)據(jù)'的p標簽

2、當該搜索框失去焦點時,我們令下方搜索框的display屬性值為none就可以了

代碼如下:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .container {
            width: 500px;
            height: 160px;
            padding: 40px;
            margin: 100px auto
        }

        #one {
            width: 268px;
            height: 33px;
            float: left;
            border: 0;
            border-top-left-radius: 20px;
            border-bottom-left-radius: 20px;
            background-color: rgb(245, 246, 247);
            outline: none;
        }

        #search {
            background-color: rgb(252, 85, 49);
            color: white;
            width: 70px;
            height: 35px;
            line-height: 35px;
            text-align: center;
            font-size: 13px;
            border-radius: 20px;
            border-top-left-radius: 0;
            border-bottom-left-radius: 0;
            float: left;
        }

        #show {
            width: 270px;
            height: 170px;
            border: 1px solid rgba(77, 76, 76, 0.459);
            display: none;
            margin-top: 40px;
            overflow: hidden;
        }
        #show div{
            width: 100%;
            height: 40px;
            line-height: 40px;
            text-indent: 1em;
            display: block;
        }
        #show div:hover{
            background-color: rgb(240, 240, 245);
            cursor:pointer;
        }
    </style>
</head>

<body>
    <div class="container">
        <div id="nav">
            <input type="text" id="one" placeholder="請輸入課程" autocomplete="on">
            <div id="search">搜索</div>
        </div>
        <div id="show">
            <div></div>
        </div>
    </div>

    <script>
        let arr = ['蛋糕便宜賣', '想吃水果', '2333', 'css精品課程','2個小朋友','這兒有2個面包','我們一起','樂隊的夏天','天氣真好'];
        let one = document.getElementById("one");
        let show = document.getElementById("show")

        one.onfocus = function () {
            show.style.display = "block";
            one.style.border = "1px coral solid"
            one.onkeyup = function () {
                let str = '';
                let tem=false;
                arr.forEach((item) => {
                    let index = item.indexOf(one.value);
                    if (~index) {
                        tem=true;
                        str+='<div>'+item+'</div>';//每次都更新str的值,所以不用擔心重復
                    }
                })
                //很重要
                if(one.value=='' || !tem){
                    show.innerHTML='<div>'+'暫無結(jié)果'+'</div>';
                }
                else{
                    show.innerHTML=str;
                }
            }

        }
        //onblur 的事件會在對象失去焦點時發(fā)生
        one.onblur = function () {
            show.style.display = "none"
            one.style.border = "1px transparent solid"
            show.innerHTML='';
        }
    </script>
</body>

</html>

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • vant倒序年月日期組件封裝實例詳解

    vant倒序年月日期組件封裝實例詳解

    這篇文章主要介紹了vant倒序年月日期組件封裝實例詳解,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2024-03-03
  • 微信小程序表單驗證WxValidate的使用

    微信小程序表單驗證WxValidate的使用

    這篇文章主要介紹了微信小程序表單驗證WxValidate的使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-11-11
  • js下拉菜單生成器dropMenu使用方法詳解

    js下拉菜單生成器dropMenu使用方法詳解

    這篇文章主要介紹了js下拉菜單生成器dropMenu的使用方法 ,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • JavaScript中的50+個實用工具函數(shù)小結(jié)

    JavaScript中的50+個實用工具函數(shù)小結(jié)

    JavaScript可以做很多出色的事情,本篇文章給大家整理50+個實用工具函數(shù),可以幫助你提高工作效率并可以幫助調(diào)試代碼,需要的朋友們下面隨著小編來一起學習學習吧
    2021-06-06
  • JS中sort函數(shù)排序用法實例分析

    JS中sort函數(shù)排序用法實例分析

    這篇文章主要介紹了JS中sort函數(shù)排序用法,結(jié)合實例形式詳細分析了sort函數(shù)的功能、原理及實現(xiàn)數(shù)組排序的相關(guān)技巧,代碼中備有詳盡的注釋便于理解,需要的朋友可以參考下
    2016-06-06
  • 基于JavaScript實現(xiàn)控制下拉列表

    基于JavaScript實現(xiàn)控制下拉列表

    這篇文章主要介紹了基于JavaScript實現(xiàn)控制下拉列表,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-05-05
  • jquery對單選框,多選框,文本框等常見操作小結(jié)

    jquery對單選框,多選框,文本框等常見操作小結(jié)

    本篇文章主要是對jquery對單選框,多選框,文本框等常見操作進行了介紹,需要的朋友可以過來參考下,希望對大家有所幫助
    2014-01-01
  • uniapp自定義頁面跳轉(zhuǎn)loading的實現(xiàn)代碼

    uniapp自定義頁面跳轉(zhuǎn)loading的實現(xiàn)代碼

    有些頁面加載起來比較慢,為了加強用戶體驗效果,所以一般都會做一個頁面加載等待的提示,頁面加載完成后消失,下面這篇文章主要給大家介紹了關(guān)于uniapp自定義頁面跳轉(zhuǎn)loading的實現(xiàn)代碼,需要的朋友可以參考下
    2023-06-06
  • JavaScript實現(xiàn)事件的中斷傳播和行為阻止方法示例

    JavaScript實現(xiàn)事件的中斷傳播和行為阻止方法示例

    這篇文章主要給大家介紹了利用JavaScript實現(xiàn)事件的中斷傳播和行為阻止的方法示例,文中給出了詳細的介紹和示例代碼,相信對大家的理解和學習具有一定的參考借鑒價值,需要的朋友們下面來一起看看吧。
    2017-01-01
  • JavaScript判斷對象是否為空對象的幾種常見方法

    JavaScript判斷對象是否為空對象的幾種常見方法

    經(jīng)典面試題,研發(fā)時也經(jīng)常遇見的一個問題,如何判斷一個對象是空對象,這篇文章主要給大家介紹了關(guān)于JavaScript判斷對象是否為空對象的幾種常見方法,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-06-06

最新評論