最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

今天的效果如下:

這個(gè)案例的要點(diǎn)有兩個(gè):

是使用CSS顯示樣式

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

首先來(lái)看CSS顯示樣式的難點(diǎn):

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

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

接著來(lái)看JS進(jìn)行比較的部分:

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

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

2、當(dāng)該搜索框失去焦點(diǎn)時(shí),我們令下方搜索框的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="請(qǐng)輸入課程" autocomplete="on">
            <div id="search">搜索</div>
        </div>
        <div id="show">
            <div></div>
        </div>
    </div>

    <script>
        let arr = ['蛋糕便宜賣', '想吃水果', '2333', 'css精品課程','2個(gè)小朋友','這兒有2個(gè)面包','我們一起','樂(lè)隊(duì)的夏天','天氣真好'];
        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的值,所以不用擔(dān)心重復(fù)
                    }
                })
                //很重要
                if(one.value=='' || !tem){
                    show.innerHTML='<div>'+'暫無(wú)結(jié)果'+'</div>';
                }
                else{
                    show.innerHTML=str;
                }
            }

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

</html>

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • js判斷兩個(gè)數(shù)組相等的5種方法實(shí)例

    js判斷兩個(gè)數(shù)組相等的5種方法實(shí)例

    再最近的一次實(shí)際項(xiàng)目開(kāi)發(fā)中,又遇到了需要對(duì)兩個(gè)數(shù)組內(nèi)容進(jìn)行比較的需求,索性整理下,這篇文章主要給大家介紹了關(guān)于js判斷兩個(gè)數(shù)組相等的5種方法,需要的朋友可以參考下
    2022-05-05
  • js實(shí)現(xiàn)無(wú)縫輪播圖

    js實(shí)現(xiàn)無(wú)縫輪播圖

    這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)無(wú)縫輪播圖,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • javascript動(dòng)畫(huà)系列之模擬滾動(dòng)條

    javascript動(dòng)畫(huà)系列之模擬滾動(dòng)條

    本文主要介紹了js動(dòng)畫(huà)模擬滾動(dòng)條的實(shí)現(xiàn)原理以及分享了通過(guò)滾動(dòng)條實(shí)現(xiàn)的幾個(gè)應(yīng)用的實(shí)例代碼:1.通過(guò)移動(dòng)滾動(dòng)條來(lái)實(shí)現(xiàn)數(shù)字的加減;2.通過(guò)拖動(dòng)滾動(dòng)條來(lái)實(shí)現(xiàn)元素尺寸的變化,以改變?cè)貙挾葹槔?3.通過(guò)拖動(dòng)滾動(dòng)條來(lái)實(shí)現(xiàn)內(nèi)容滾。需要的朋友一起來(lái)看下吧
    2016-12-12
  • javascript基本包裝類型介紹

    javascript基本包裝類型介紹

    這篇文章主要介紹了javascript的基本包裝類型,JS為了便于操作基本類型,提供了3個(gè)特殊的引用類型:Boolean/Number和String,需要的朋友可以參考下
    2015-04-04
  • js如何找出兩個(gè)數(shù)組中不同的元素

    js如何找出兩個(gè)數(shù)組中不同的元素

    這篇文章主要介紹了js如何找出兩個(gè)數(shù)組中不同的元素,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • leaflet基本使用示例教程

    leaflet基本使用示例教程

    這篇文章主要介紹了leaflet基本使用示例教程,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2023-12-12
  • 基于JavaScript實(shí)現(xiàn)簡(jiǎn)單的音頻播放功能

    基于JavaScript實(shí)現(xiàn)簡(jiǎn)單的音頻播放功能

    本文給大家?guī)?lái)了基于js實(shí)現(xiàn)簡(jiǎn)單的音頻播放功能,數(shù)據(jù)是由后臺(tái)提供的,具體實(shí)例代碼大家參考下本文
    2018-01-01
  • input 標(biāo)簽實(shí)現(xiàn)輸入框帶提示文字效果(兩種方法)

    input 標(biāo)簽實(shí)現(xiàn)輸入框帶提示文字效果(兩種方法)

    這篇文章主要介紹了input 標(biāo)簽實(shí)現(xiàn)輸入框帶提示文字效果(兩種方法),需要的朋友可以參考下
    2017-10-10
  • JS實(shí)現(xiàn)DOM刪除節(jié)點(diǎn)操作示例

    JS實(shí)現(xiàn)DOM刪除節(jié)點(diǎn)操作示例

    這篇文章主要介紹了JS實(shí)現(xiàn)DOM刪除節(jié)點(diǎn)操作,結(jié)合實(shí)例形式分析了javascript使用removeChild()操作頁(yè)面dom節(jié)點(diǎn)刪除功能的相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2018-04-04
  • 小試SVG之新手小白入門教程

    小試SVG之新手小白入門教程

    這篇文章主要給大家介紹了關(guān)于SVG的相關(guān)資料,文中通過(guò)圖文以及示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-01-01

最新評(píng)論

蛟河市| 沂源县| 图木舒克市| 读书| 周至县| 衢州市| 太康县| 广南县| 温州市| 福贡县| 通渭县| 克什克腾旗| 巫溪县| 廉江市| 前郭尔| 九龙县| 遵义市| 阳泉市| 仙游县| 商水县| 隆安县| 曲阳县| 益阳市| 喀喇沁旗| 阿勒泰市| 怀化市| 讷河市| 南岸区| 阳曲县| 黑河市| 新巴尔虎左旗| 甘德县| 正宁县| 建德市| 濉溪县| 日喀则市| 马山县| 尉氏县| 汉源县| 平武县| 长垣县|