1.HTML页面
<div class="wrapper">
<input type="text" class="text">
<ul></ul>
</div>
2.css
* { padding: 0; margin: 0; list-style: none; } .wrapper { margin: 100px; } .text { height: 40px; width: 300px; } .wrapper ul { width: 300px; border: 1px solid #ccc; height: 200px; display: none; }
3.js代码
var Oinput = document.getElementsByTagName(‘input‘)[0]; var oUl = document.getElementsByTagName(‘ul‘)[0]; Oinput.oninput = function () { // 获取输入的值 var value = this.value; var oScript = document.createElement(‘script‘); // 键值对和回调函数必须有 oScript.src = ‘https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su?wd=‘+ value +‘&cb=aa‘ document.body.appendChild(oScript); } function aa(data){ oUl.style.display = ‘block‘; // 获取数据中s的值 ps:输入值时把可能的获取的联想词放入到s数组中 var list = data.s; var str = ‘‘; // 通过遍历把输入的值显示到页面上 list.forEach(function(ele,index){ str += ‘<li>‘+ ele +‘</li>‘; }) oUl.innerHTML = str; }
4.有时输入过多,ul会没有,因为后台无内容,但script标签还是会一直创建,这时需要判断
function aa(data){ // 获取数据中s的值 ps:输入值时把可能的获取的联想词放入到s数组中 var list = data.s; var str = ‘‘; if(list.length > 0){ // 通过遍历把输入的值显示到页面上 list.forEach(function(ele,index){ str += ‘<li>‘+ ele +‘</li>‘; }) oUl.innerHTML = str; oUl.style.display = ‘block‘; }else{ oUl.style.display = ‘none‘; } }
function aa(data){ console.log(data) // oUl.style.display = ‘block‘; // 获取数据中s的值 ps:输入值时把可能的获取的联想词放入到s数组中 var list = data.s; var str = ‘‘; if(list.length > 0){ // 通过遍历把输入的值显示到页面上 list.forEach(function(ele,index){ str += ‘<li><a href=https://www.baidu.com/s?wd=‘+ ele +‘>‘+ ele +‘</a></li>‘; }) oUl.innerHTML = str; oUl.style.display = ‘block‘; }else{ oUl.style.display = ‘none‘; } }
完整代码如下: var Oinput = document.getElementsByTagName(‘input‘)[0];
var oUl = document.getElementsByTagName(‘ul‘)[0]; Oinput.oninput = function () { // 获取输入的值 var value = this.value; var oScript = document.createElement(‘script‘); // 键值对和回调函数必须有 oScript.src = ‘https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su?wd=‘+ value +‘&cb=aa‘ document.body.appendChild(oScript); // oScript.remove(); } function aa(data){ console.log(data) // oUl.style.display = ‘block‘; // 获取数据中s的值 ps:规定。输入值时把可能的获取的联想词放入到s数组中 var list = data.s; var str = ‘‘; if(list.length > 0){ // 通过遍历把输入的值显示到页面上 list.forEach(function(ele,index){ str += ‘<li><a href=https://www.baidu.com/s?wd=‘+ ele +‘>‘+ ele +‘</a></li>‘; ps:https://www.baidu.com/s?wd=刘诗诗 刘诗诗为当前输入的值 }) oUl.innerHTML = str; oUl.style.display = ‘block‘; }else{ oUl.style.display = ‘none‘; } }
总结:
1.先创建input标签
2.给input标签绑定事件
3.获取输入的值
5.进行数据筛选 ps:写一个回调函数