javascript - js 模糊查询

查看:92
本文介绍了javascript - js 模糊查询的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

根据返回的数据,大概如下。要求是输入Y或者y 显示牙刷 浴巾 输入ys或YS显示牙刷。输入牙显示牙刷 牙具
输入牙刷 显示牙具
自己写了一下午准备做个插件方便以后用 最后发现有不少bug 搞不定了来求救。li模拟的option
哪位好心人帮帮忙实现个demo

var data = {
    "state": "0",
    "data_list": [{
        "id": "1",
        "title": "牙刷",
        "Ne": "YS",
        "mNe": "ys",
    }, {
        "id": "2",
        "title": "毛巾",
        "Ne": "MJ",
        "mNe": "mj",
    }, {
        "id": "3",
        "title": "变形金刚",
        "Ne": "BXJG",
        "mNe": "bxjg",
    }, {
        "id": "4",
        "title": "浴巾",
        "Ne": "YJ",
        "mNe": "yj",
    }, {
        "id": "5",
        "title": "洗发水",
        "Ne": "XFS",
        "mNe": "xfs",
    }, {
        "id": "6",
        "title": "沐浴露",
        "Ne": "MYL",
        "mNe": "myl",
    }, {
        "id": "7",
        "title": "纸杯",
        "Ne": "ZB",
        "mNe": "zb",
    }, {
        "id": "8",
        "title": "内裤",
        "Ne": "NK",
        "mNe": "nk",
    }, {
        "id": "9",
        "title": "洗面奶",
        "Ne": "XMN",
        "mNe": "xmn",
    }, {
        "id": "10",
        "title": "牙具",
        "Ne": "YJ",
        "mNe": "yj",
    }, {
        "id": "11",
        "title": "内衣",
        "Ne": "NY",
        "mNe": "ny"
    }, {
        "id": "12",
        "title": "原味内衣",
        "Ne": "YWNY",
        "mNe": "ywny"
    }]
}

解决方案

        <input type="search" id="search" placeholder="请输入关键字" />
        <ul id="list"></ul>
        <script type="text/javascript">
            window.onload = function(){
                    //数据列表
                    var data = {
                        "state": "0",
                        "data_list": [{
                            "id": "1",
                            "title": "牙刷",
                            "Ne": "YS",
                            "mNe": "ys",
                        }, {
                            "id": "2",
                            "title": "毛巾",
                            "Ne": "MJ",
                            "mNe": "mj",
                        }, {
                            "id": "3",
                            "title": "变形金刚",
                            "Ne": "BXJG",
                            "mNe": "bxjg",
                        }, {
                            "id": "4",
                            "title": "浴巾",
                            "Ne": "YJ",
                            "mNe": "yj",
                        }, {
                            "id": "5",
                            "title": "洗发水",
                            "Ne": "XFS",
                            "mNe": "xfs",
                        }, {
                            "id": "6",
                            "title": "沐浴露",
                            "Ne": "MYL",
                            "mNe": "myl",
                        }, {
                            "id": "7",
                            "title": "纸杯",
                            "Ne": "ZB",
                            "mNe": "zb",
                        }, {
                            "id": "8",
                            "title": "内裤",
                            "Ne": "NK",
                            "mNe": "nk",
                        }, {
                            "id": "9",
                            "title": "洗面奶",
                            "Ne": "XMN",
                            "mNe": "xmn",
                        }, {
                            "id": "10",
                            "title": "牙具",
                            "Ne": "YJ",
                            "mNe": "yj",
                        }, {
                            "id": "11",
                            "title": "内衣",
                            "Ne": "NY",
                            "mNe": "ny"
                        }, {
                            "id": "12",
                            "title": "原味内衣",
                            "Ne": "YWNY",
                            "mNe": "ywny"
                        }]
                    }
                //动态生成列表
                var search = document.getElementById('search');
                var list = document.getElementById('list');
                search.oninput = function(){
                    list.innerHTML = '';
                    var text = search.value;
                    var length = text.length;
                    for(var i in data.data_list){
                        if(data.data_list[i].title.substring(0,length).indexOf(text) != -1
                            ||data.data_list[i].Ne.substring(0,length).indexOf(text) != -1
                            ||data.data_list[i].mNe.substring(0,length).indexOf(text) != -1
                        ){
                            list.innerHTML += '<li id="'+data.data_list[i].id+'">'+data.data_list[i].title+'</li>'
                        }
                    }
                }
                //点击列表中的数据获取其ID
                list.onclick = function(e){
                    if(e.target.nodeName == 'LI'){
                        alert(e.target.id);
                    };
                }
            }
        </script>

不知道是不是楼主要的效果,input中的值可以用正则去掉特殊字符,样式就不写了哈!

这篇关于javascript - js 模糊查询的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆