jQuery中的Ajax----搜索框提示效果 【案例】

案例 搜索框提示效果

搜索框是一个使用异步交互来实现的

异步交互:只要页面有局部数据在更新变化,但是整体页面没有变化的时候他一定是异步方法实现的

先来展示一下最后的效果

很明显,当你输入关键词的时候,他会在json文件里进行筛选然后展示出相同的关键字

下面就让我们具体来分析一下这个案例

首先我们得建一个json文件 ,来保存我们的数据。以便我们查找或者做操作,里面的内容我们采用属性和值的方法进行存储

具体如下:

[
    {
    "name":"javascript",
    "value":["javascript","javascript权威指南","javascript高级程序设计"]
    },        
    {
    "name":"jquery",
    "value":  ["jquery","jquery ajax","牛逼的jquery"] 
    }
    
]

接下来就是我们的案例页面,------就是很简单的布局一下搜索框

html

<div class="container">
        <!-- 搜索框 -->
        <input type="text" id="search">
        <!-- 提示框 -->
        <div class="alert">
            <ul>
                
            </ul>
        </div>

    </div>

css

<style>
        .container #search{
            width: 300px;
        }
        .container .alert{
            width: 300px;
        }
        .container .alert ul{
            list-style: none;
            padding: 0;
            margin: 0;
        }
    </style>

最后,也是最重要的部分 ,当然就是我们的Jquery的代码啦。

从效果中可以看出

  1. 在不输入内容的情况下不显示
  2. 输入有内容显示内容
  3. 输入没有内容不显示内容

根据思路可以确定

  • 在刷新页面时清空列表内容

  • 获取到每一次用户在输入到输入框的内容

  • 根据获取到的内容利用方法

    获取到json库的数据

    • 在获取json数据的时候获取到其中的name值
    • 判断用户输入到输入框的内容以及获取到的数据在json数据中是否存在
    • 存在就将json的数据返回添加带HTML页面中显示
    • 不存在则不显示所有内容
  • 在输入信息到获取信息到显示信息的时候,要保证提示框要从隐藏状态到显示状态

具体代码如下

<script>
		//搜索框绑定输入事件
        $('#search').bind('input',function(){
            $('.alert>ul').empty();
            //1.根据用户输入的内容,动态获取相关提示数据
            var inputValue=$(this).val()
            $.getJSON('data/server4.json',function(data){
                $.each(data,function(index,obj){
                    var name= obj.name;
                    if(name.indexOf(inputValue)>=0){
                        var value=obj.value;
                        $.each(value,function(index,text){
                            $('.alert>ul').append($('<li>'+text+'</li>'))
                        })
                    }
                })
            })

            //2.将提示框从隐藏状态切换到显示状态
            $('.alert').css('display','block');
        }).bind('blur',function(){
            $('.alert').css('display','none');
        })
    </script>
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值