模拟百度

  今天来写下类似于百度搜索的一个东西,获取百度接口,利用jsonp获取百度数据 ,实现百度框搜索的功能!

  我是用jq来些的  ,我们先引入jq。

  <script src="jquery.min.js>

还有我们封装的一个jsonp的一个js   这只是个插件  直接引入即可

<script src= baidujsonp.js>

来写我们的html代码

<div style="width: 40%; margin: 100px auto;">
     <input type="text" id="txt" style="width: 100%; height: 30px;"/>
     <ul id="ul11" ></ul>
</div>

效果是这样的

  var  oTxt = document.getElenentById("txt")  //获取input

  var  index = -1; //定义input的键盘抬起事件  从-1开始

  因为当我们的键盘抬起的时候就开始获取百度的数据了,所以我们给搜索框来个键盘松开事件抬起事件

  $("#txt").on('keyup',function(event){

event = event||window.event   //获取event事件

if(event.keyCode==40){         //键码为40  向上键

index==$("#ul11>li").length - 1 ? index=-1 :null;    //三目运算符 判断下标是否等于li 的长度  成立 下标等于-1 不成立则为空

index++;

$("#ul11>li").eq(index).css("background", "#ccc").siblings("li").css("background", "none");  // 当前下标的li 的css背景颜色 为灰色 他的兄弟li背景颜色为空

$("#txt").val($("#ul11>li").eq(index).text());    //搜索框里的内容就是 你选择的当前的li的内容

}else if(event.keyCode == 38){  // 键码为38  向下键 

index == 0 ? index = $("#ul11>li").length : null;    //同上  判断

index--;

 $("#ul11>li").eq(index).css("background", "#ccc").siblings("li").css("background", "none");  //同上

$("#txt").val($("#ul11>li").eq(index).text());   //同上

}else if(event.keyCode == 13) {   //当键码为13  13为Enter  确认键

location.href = 'https://www.baidu.com/s?wd='+$("#txt").val()+'';

}else{

jsonp({
      url: 'https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su',  //获取百度接口
      data: {
           wd: oTxt.value     //data  要搜索的内容
          },
         cbName:"cb",     //cbName  = cb
         success: function (json) {    //成功时有一个回调函数    json是获取到的数据   
         var str = "";      //设置一个 空的字符串
         for (var i in json.s) {      //遍历  数据里的s
         str += "<li><a href='https://www.baidu.com/s?wd="+json.s[i]+"'>" + json.s[i] + "</a></li>"    //str  里添加li
         }
        $('#ul11').html(str);    //ul里添加li
        }
    })

}

})

 

基本的就时这些了   如果还有那些不明白的 或者想要  封装好的jsonp的js  给我留言  咱们一起讨论吧!

 

转载于:https://www.cnblogs.com/Rzyy/p/7063026.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值