最近学了Ajax,Ajax可以在不刷新页面的情况和服务器通信,Jquery也有Ajax,下面记录下原生JS的Ajax和JQuery的Ajax
这里使用了百度的热搜接口,https://www.baidu.com/su?wd=?&cb=?
JS原生Ajax
function getData(data){
var script = document.querySelector('#jsonp');
script.parentNode.removeChild(script);
$('ul').html('');
for(var i = 0 ;i<data.s.length;i++){
$('<li>'+ data.s[i] +'</li>').appendTo('ul');
console.log("ss");
}
}
function getList(wd){
var script = document.createElement('script');
script.id = 'jsonp';
console.log(wd);
script.src = 'https://www.baidu.com/su?cb=getData&wd=' + wd;
document.body.appendChild(script);
}
$('input').keyup(function(){
var wd = $(this).val();
getList(wd);
})
这样通过百度热搜接口查找input的value的热搜;wd=后面跟的就是想要搜索的关键字
在JQuery下Ajax简单多了
var v = $('input').val();
$.ajax({
type:'get',
url:'https://www.baidu.com/su',
dataType:'jsonp',
jsonp:'cb',
data:{
wd:v
}
}).done(function(resp){
alert(resp.s);
})
当时,我input的value是sss,但将wd=sss传过去,返回的内容中s是空的
我以为没获取到input的value,然后在控制台输出value,确有其值,那就奇怪了,为什么没搜到呢,我一度以为Jquery的ajax下data不能传变量,所以才没把value传到服务器去,结果。。。。。。input的value改成其他的,就能得到返回的s内容。由此得出sss这个字符串估计没人搜。。。。。。。。