当搜索框失去焦点时,显示输入字眼的相关产品(需引入lauyi包)

CSS样式

 <style>

        * {

            margin: 0;

            padding: 0;

            list-style: none;

        }

        .contant {

            width: 500px;

            height: 500px;

            margin: 100px auto;

            position: relative;

        }

        .layui-input {

            width: 400px;

        }

 .layui-btn {

            display: inline-block;

            position: absolute;

            left: 405px;

            top: 0;

        }

        #show {

            width: 400px;

            height: 400px;

            border: 1px solid #ccc;

            border-radius: 5px;

            border-top: none;

            display: none;

            color: #666;

        }  

        #show p {

            margin: 10px 0;

            margin-left: 5px;

        }

    </style>

html代码

 <div class="contant">

        <input type="text" id="input" required placeholder="请输入商品" class="layui-input">

        <button type="button" id="btn" class="layui-btn"><i class="layui-icon  layui-icon-search"></i> </button>

        <div id="show"></div>

    </div>

JavaScript

<script src="./layui/layui.js"></script>

    <script>

        let arr = ['兰蔻(LANCOME)肌底精华眼霜15ml  ',

            '兰蔻(LANCOME)小黑瓶眼部肌底精华液20ml',

            '兰蔻(LANCOME)持妆轻透粉底液PO-01 30ml',

            '兰蔻(LANCOME)奇迹香氛 30ml+兰蔻菁纯丝绒雾面唇膏',

            '兰蔻(LANCOME)小黑瓶全新肌底精华液50ml',

            '兰蔻(LANCOME)限定皮革唇膏 888 3.4g'

        ]

        // 获取文本框和展示区域

        let input = document.getElementById('input')

        let show = document.getElementById('show')

        //给文本框注册键盘抬起事件

        input.onkeyup = function() {

                show.style.display = 'block'

                let str = ''

                    // 获取文本框的值

                let val = input.value

                arr.forEach(r => {

                    //  r 是字符串,则用到indexOf进行匹配,只要匹配到了返回所在字符串的下标,匹配不到则返回-1

                    let num = r.indexOf(val)

                    if (num != -1) {

                        str += '<p>' + r + '</p>'

                    }

                    if (val === '' || str === '') {

                        show.innerHTML = '<p>' + '暂无结果' + '</p>'

                    } else {

                        show.innerHTML = str

                    }

                })

            }

            //给文本框注册失去焦点事件

        input.onblur = function() {

            show.style.display = 'none'

        }

    </script>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值